CoreData NSPredicate与BOOL比较无法正常工作

时间:2014-03-14 22:20:03

标签: ios objective-c core-data nspredicate magicalrecord

我为此疯狂了

items = [Item MR_findAllWithPredicate:[NSPredicate predicateWithFormat:@"self.userData.checklisted = NO"]];

应该只返回明显具有self.userData.checklisted NO的项目,但是当我在此行执行后立即调试时,我得到了

(lldb) po [[standItems[0] userData] checklisted]
0

(lldb) po [[standItems[1] userData] checklisted]
1

因此返回self.userData.checklisted = YES的项目(通过谓词为self.userData.checklisted = NO)

这种行为的原因是什么?如何使它工作?

更新 我发现问题是该项目未保存,但如何使其与未保存的数据一起使用?

1 个答案:

答案 0 :(得分:0)

您需要使用+ (NSArray *) MR_findAllWithPredicate:(NSPredicate *)searchTerm inContext:(NSManagedObjectContext *)context方法(而不是您当前使用的方法),并传递包含尚未保存的更改的上下文。