我很担心为什么以下不起作用:
正如您在调试控制台中看到的那样,newerContentAvailable
的值为0,即使我只想要将此值设置为1的对象。但它仍然会进入结果。
是的,我正在使用MagicalRecord,但怀疑这与它有什么关系。它是一个古老而成熟的代码库,MR_findAllWithPredicate:...
只是在该数据模型上创建一个获取请求,并设置获取的谓词。
我对Core Data有什么不了解吗?我承认它是一个框架的野兽,最佳实践很少。
非常感谢一些帮助!
答案 0 :(得分:1)
我认为问题可能是您使用的属性名称的结果:以new...
开头的名称似乎会导致一些意外行为(*)。尝试更改属性名称以查看是否对其进行排序。
(*)参见例如this question and answer。
答案 1 :(得分:0)
与%@格式一起使用时,NSNumber的NSNumber值不会被替换。你必须获得返回正确类型的intValue或floatValue(doubleValue等)。
谓词应该是,
NSPredicate *findPred = [NSPredicate predicateWithFormat:@"newerContentAvailable == 1"];
OR
NSNumber *number = @1; //Or any other number
NSPredicate *findPred = [NSPredicate predicateWithFormat:@"newerContentAvailable == %d", [number intValue]];