带有NSPredicate的NSManagedObject的NSNumber属性

时间:2014-12-23 05:24:18

标签: ios objective-c nspredicate nsmanagedobject

这里我将核心数据中的属性(name :- universal_Id)作为模态类

中的NSNumber
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"universal_Id == %d",0];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"universal_Id == %d",[NSNumber numberWithInt:0]];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"universal_Id == %@",[NSNumber numberWithInt:0]];

请为上面的谓词提供一些正确的解决方案。哪一种是在universal_Id

的基础上获取数据的正确方法

1 个答案:

答案 0 :(得分:0)

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"universal_Id == %d",0]; 是正确的,因为Core Data是ORM并使用对象来表示标量值。因此,当您需要将数据存储在核心数据中时,您需要使用对象。在谓词构建中,这里不需要使用对象,标量值足以构建谓词,因为最后,核心数据查询与universal_Id值匹配,而不是对象。

<强>更新

您也可以使用

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.universal_Id == %d",0];