如何编写核心数据获取请求谓词以将 NSNumber 作为位图进行比较
How to write a Core Data fetch request predicate to compare an NSNumber as a bitmap
我有一个名为 'type' 的核心数据实体属性。它在核心数据中是整数类型,所以当被拉出时是一个 NSNumber 并且该值是一个位图,我希望针对一组特定的值
进行过滤
我一直在尝试按照
的思路为此编写一个 NSPredicate
NSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"type AND %@ > %0",@6667, @0];
Xcode 如果给我 *** 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'Unable to parse the format string "type AND %@ > %@"'
是否可以在核心数据提取谓词中执行此逻辑?或者我是否必须制作一系列 OR,将类型与许多不同的值进行比较?或者创建一个值数组并按照 ANY type IN
的方式做一些事情
如有任何关于如何正确编写谓词的想法,我们将不胜感激。
所以回到我的 Mac 我能够检查这个并且确实
NSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"bitwiseAnd:with:(type, %@) > %@",@6667, @0];
应该可以。但是在检查了由此生成的 SQL 之后,我发现一个更简单的解决方案是将谓词中的 "AND" 替换为 "&":
NSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"type & %@ > %@",@6667, @0];
我有一个名为 'type' 的核心数据实体属性。它在核心数据中是整数类型,所以当被拉出时是一个 NSNumber 并且该值是一个位图,我希望针对一组特定的值
进行过滤我一直在尝试按照
的思路为此编写一个 NSPredicateNSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"type AND %@ > %0",@6667, @0];
Xcode 如果给我 *** 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'Unable to parse the format string "type AND %@ > %@"'
是否可以在核心数据提取谓词中执行此逻辑?或者我是否必须制作一系列 OR,将类型与许多不同的值进行比较?或者创建一个值数组并按照 ANY type IN
的方式做一些事情如有任何关于如何正确编写谓词的想法,我们将不胜感激。
所以回到我的 Mac 我能够检查这个并且确实
NSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"bitwiseAnd:with:(type, %@) > %@",@6667, @0];
应该可以。但是在检查了由此生成的 SQL 之后,我发现一个更简单的解决方案是将谓词中的 "AND" 替换为 "&":
NSPredicate *typeOfFacilityPredicate = [NSPredicate predicateWithFormat:@"type & %@ > %@",@6667, @0];