【发布时间】:2012-01-26 11:55:12
【问题描述】:
如果我的Author NSManagedObject 模型具有authorID 属性(由服务器确定),如果NSPredicate 按authorID 而不是完整的Author 对象过滤,NSFetchRequest 的性能会更好吗?假设我正在通过某个author 获取所有Book NSManagedObjects。哪个predicateFormat更好?
[NSPredicate predicateWithFormat:@"author = %@", anAuthor]
或
[NSPredicate predicateWithFormat:@"author.authorID = %@", anAuthor.authorID]
对此进行分析的最佳方式是什么?我使用OCUnit (SenTestingKit) 进行核心数据测试。 iOS有类似Ruby's Benchmark module的东西吗?
【问题讨论】:
-
在执行提取时您手边有作者对象吗?如果您要使用 Author 对象,我假设您需要先获取它,然后对该作者的书籍执行第二次请求(两次访问数据库)。如果您已经拥有 id,则可以通过一个 fetch 请求获得所需的结果。
-
这不会解决您的问题,但您最好知道 Apple 文档指出您应该在编写谓词时使用 '==' 而不仅仅是 '='。
标签: performance core-data profile nspredicate nsfetchrequest