核心数据:观察特定类型实体的所有更改

时间:2011-01-03 06:35:30

标签: objective-c cocoa core-data

每当添加/更改/删除某种类型的实体时,我都会收到通知。我知道这可以通过向managedObjectContext添加一个观察者来实现,但是我必须搜索返回的三个集合以查看它们是否包含该类型的对象。我可以使用filteredSetUsingPredicate,但每次发生更改时,进行三次O(n)操作似乎效率低下。还有另一种更有效的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:5)

似乎效率低下?根据什么测试和观察?您如何看待NSArrayController的工作原理(提示 - 阅读Cocoa Bindings)? :-)当然,使用SQLite存储类型,您可以获取数据库中的提取内容,但对内存中的对象进行了哪些更改?

如果我在你的位置,我会把它连接起来并用我想象的性能测试它是一个真实用户可能会遇到的合理的最坏情况。

如果您发现性能确实不足,最好发布一个单独的问题来描述您的数据模型,您需要观察给定实体的所有实例的所有更改的原因,以及Instruments表示性能接收器发生的位置。< / p>