我有一个核心数据iPhone应用程序,它显示Subscription
实体,其任何items
不是read
。换句话说,我构建一个谓词是这样的:带有基于依赖属性的谓词的NSFetchedResultsController
[NSPredicate predicateWithFormat:@"ANY items.read == NO"]
尽管这适用于初始获取,它不会影响Subscription
实体,当我修改Item
,所以NSFetchedResultsController
从未重新评估的Subscription
实体。什么是更好的结构化方法,以便在项目的read
属性被设置时更新Subscription
实体?
我曾尝试在Subscription
创建一个属性unreadCount
和使用keyPathsForValuesAffectingUnreadCount
返回包含items.read
一组。我没有想到这会起作用,但事实并非如此。我从_NSFaultingMutableSet
得到一个例外,告诉我read
密钥不受支持。
我当时希望有人能够进入并提供一些我没有想到的精彩方法,但我怀疑你是对的,特别是在解决方案2中。我想我会让'unreadCount'成为一个“真正的”属性,并在物品更新时更新它。 – Alex 2010-02-02 20:24:03
为了您的更新,我最终为'Subscription'添加了属性,以便'NSFetchedResultsController'只需要观察一个实体。奇怪的是,除非我在'managedObjectContextObjectsDidChange:'中的更新对象中出错,否则'NSFetchedResultsController'仍然看不到它们。这有点混乱,我很关心单个对象在一组对象中的性能问题,但现在它确实有效。 – Alex 2010-02-03 14:44:18
奇怪。你如何更新新的财产? – gerry3 2010-02-03 18:11:24