NSPredicate 获取属性不在给定数组中的实体

Posted

技术标签:

【中文标题】NSPredicate 获取属性不在给定数组中的实体【英文标题】:NSPredicate get entities with attribute not in a given array 【发布时间】:2016-03-14 10:42:45 【问题描述】:

我正在使用 CloudKit 在我的应用程序中存储和同步一些数据。假设我有一个记录类型,其属性名为key。我想获取key 不在给定数组unwantedKeyArray 中的所有记录。

我试过了

let predicate = NSPredicate(format: "key NOT IN %@", unwantedKeyArray)

但应用程序崩溃并显示错误提示

'无法解析格式字符串“key NOT IN %@”'

那么创建NSPredicate 以实现我的目标的正确方法是什么?

(虽然我在我的应用程序和这个问题描述中使用了 Swift,但也欢迎在 ObjC 中回答)

【问题讨论】:

【参考方案1】:

试试这个代码示例:

   NSPredicate(format: "NOT (key IN %@)", unwantedKeyArray)

【讨论】:

以上是关于NSPredicate 获取属性不在给定数组中的实体的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicate 获取给定值下属性的最大值

使用 NSPredicate 获取核心数据对象数组?

NSPredicate 用于在中间选择给定对象

NSPredicate 嵌套字典动态键

使用 NSPredicate 过滤对象中的数组

使用 NSPredicate 遍历多个 Core Data 对象