如何编写Core Data fetch请求谓词以将NSNumber作为位图进行比较

时间:2017-04-17 17:26:30

标签: ios core-data bitmap nspredicate

我有一个名为' type'的核心数据实体属性。它在核心数据中是整数类型,所以当拉出NSNumber时,值是我希望为特定值集过滤的位图

我一直试图按照

的方式为此编写NSPredicate
NSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"type AND %@ > %0",@6667, @0];

Xcode如果给我***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:'无法解析格式字符串"键入AND%@> %@"'

是否可以在核心数据获取谓词谓词中执行此逻辑?或者我是否必须制作一系列OR,我将类型与许多不同的值进行比较?或者可能创建一个值数组并按照任何类型IN

的方式执行某些操作

任何关于如何正确编写谓词的想法都会被感激不尽。

1 个答案:

答案 0 :(得分:1)

所以回到我的Mac后,我能够检查这个,的确是

NSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"bitwiseAnd:with:(type, %@) > %@",@6667, @0];

应该有效。但是在检查了由此生成的SQL后,我发现一个更简单的解决方案就是用谓词替换谓词中的“AND”:

NSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"type & %@ > %@",@6667, @0];