我有一个 Core Data iPhone 应用程序,它显示 Subscription
实体,其中任何 items
都不是 read
。换句话说,我构造了一个这样的谓词:
[NSPredicate predicateWithFormat:@"ANY items.read == NO"]
虽然这适用于初始提取,但当我修改
Subscription
时它不会影响 Item
实体,因此 NSFetchedResultsController
永远不会重新评估 Subscription
实体。有什么更好的方法来构造它,以便在设置项目的 Subscription
属性时更新 read
实体?我确实尝试在
unreadCount
上创建属性 Subscription
并使用 keyPathsForValuesAffectingUnreadCount
返回包含 items.read
的集合。我没想到这会奏效,但事实并非如此。我从 _NSFaultingMutableSet
收到一个异常,告诉我不支持 read
键。 最佳答案
我看到两种解决方案:
您可以获得名为“aSubscription”的订阅的未读项目集,如下所示:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"read == NO"];
NSSet *unreadItems = [aSubscription.items filteredSetUsingPredicate:pred];
关于iphone - 带有基于依赖属性的谓词的 NSFetchedResultsController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2185679/