gpt4 book ai didi

objective-c - 将数字添加到停靠栏图标

转载 作者:行者123 更新时间:2023-12-03 16:56:12 26 4
gpt4 key购买 nike

这是我的代码:

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 进行比较时不会抛出异常,而是简单地返回无意义的内容。

此外,为什么不将此 is-than-X-date 测试作为谓词包含在您用于获取这些对象的获取请求中?然后(在确保截止日期值是 NSDates 后)您可以简单地使用数组的 count 。当然,这是假设您没有在显示的代码之外对较大的结果数组执行其他操作。

关于objective-c - 将数字添加到停靠栏图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1892382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com