下面是我的代码:

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]];

出于某种原因,该代码将8与停靠图标时,它应该是2

有帮助吗?

解决方案

在什么理由你声称,它应该是2?你显然有其截止日期小于当前日期阵列中八个对象(你通过循环创建每次一个新对象,顺便说一句)。

什么是一流的托管对象DueDate属性的值吗? (别看你的模型使用class此,发送的截止日期值NSLog消息,并记录结果。)这有可能是他们不NSDates,他们的compare:方法,而不是当被问及抛出异常比较一个NSDate,简单地返回无义。

此外,为什么不包括这-低于-X的最新测试中你用得到这些对象的读取请求谓语?然后(确保之后的截止日期值NSDates),你可以简单地使用阵列的count。这是假设你没有做别的事情与更大的结果数组的代码之外,你表现的,当然。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top