문제

내 코드는 다음과 같습니다.

for (NSManagedObject *object in array) {
    if ([[object valueForKey:@"DueDate"] isLessThan:[NSDate date]]) {
        count++;
        NSLog(@"Looped");
        NSString *test = [[NSString alloc] initWithFormat:@"%@", [object valueForKey:@"DueDate"]];
        NSLog(@"%@", test);
    }
}
NSLog(@"%i", count);
NSDockTile *aTitle = [[NSApplication sharedApplication] dockTile];
[aTitle setBadgeLabel:[NSString stringWithFormat:@"%i", count]];

어떤 이유로이 코드는 2 여야 할 때 도크 아이콘에 8을 추가합니다.

도움이 되었습니까?

해결책

어떤 근거가 당신은 그것이 2 여야한다고 주장합니까? 배열에 마감일이 현재 날짜보다 작은 8 개의 객체가 있습니다 (루프를 통해 매번 새 개체를 만듭니다).

이 관리 객체의 가치의 클래스는 무엇입니까? ' DueDate 재산? (이것에 대한 모델을 보지 마십시오 - 마감일 값을 세웁니다. class 메시지를 보내고 사용한 결과를 기록합니다 NSLog.) 그들이 nsdate가 아니고 그들의 compare: 메소드는 NSDate와 비교하라는 요청을받을 때 예외를 던지는 대신 단순히 말도 안되는 것을 반환하는 것입니다.

또한,이 객체를 얻기 위해 사용하는 페치 요청의 술어로 X-X-Date 테스트를 포함시키지 않는 이유는 무엇입니까? 그런 다음 (기한 값이 NSDates인지 확인한 후) count 배열의. 그것은 당신이 보여준 코드 외부의 더 큰 결과 배열로 다른 일을하지 않는다고 가정합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top