我是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