countForFetchRequest行为

时间:2009-10-21 14:20:01

标签: iphone cocoa-touch core-data

我是coredata的新手,还在学习。 我有一个应用程序需要获取符合给定条件的记录数。

假设我有3种类型的实体,即条目,标签和附件。 条目与标签和附件有很多关系。 Tag与Entry有一对一的关系。 附件与Entry有一个关系。

以下代码段:

NSFetchRequest *req = [[NSFetchRequest alloc] init];
NSEntityDescription entity = [NSEntityDescription entityForName:@"Entry" inManagedContext:ctx];
[req setEntity:entity];

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(name like 'a*') AND (tags.name like 'test*') OR (attachments.name like 'photo*')"];
[req setPredicate:pred];

NSUInteger count1 = [ctx countForFetchRequest:req error:nil];
NSUInteger count2 = [[ctx executeFetchRequest:req error:nil] count];

显然,上面2次调用返回的结果是不同的。 count1结果错误,count2结果正确。 count1显示的结果大于预期的结果。

任何人都知道为什么上述代码的结果不同?

谢谢, Meiwin

0 个答案:

没有答案
相关问题