如何使用两个 NSPredicates 获取请求 - Swift 2

Posted

技术标签:

【中文标题】如何使用两个 NSPredicates 获取请求 - Swift 2【英文标题】:How to use two NSPredicates for fetch request - Swift 2 【发布时间】:2016-03-02 03:07:30 【问题描述】:

我试图通过这样做将两个NSPredicates 用于单个提取请求,

let predicate1 = NSPredicate(format: "object1 == nil", "object1")
let predicate2 = NSPredicate(format: "object2 == nil", "object2")
let predicate = NSCompoundPredicate(type: NSCompoundPredicateType.OrPredicateType, subpredicates: [predicate1, predicate2])

request.predicate = predicate

这些对象是NSManagedObject 的子类,我正在尝试获取与任一对象没有关系的所有项目。

但是它似乎不起作用,有人可以对我可能出错的地方提出任何建议吗?

【问题讨论】:

你没有在你的谓词中绑定任何东西,所以它们不应该是NSPredicate(format: "object1 == nil", "object1"),而是NSPredicate(format: "object1 == nil") @sschale 似乎不起作用,对于单个谓词我使用 request.predicate = NSPredicate(format: "object1 == nil", "object1") 并且有效 你可以只在谓词中使用 OR,所以你应该可以使用 NSPredicate(format: "(object1 == nil) OR (object2 == nil)") 【参考方案1】:

试试这个,

let predicate1 = NSPredicate(format: "object1 == nil && object2 == nil", "object1","object2")

【讨论】:

以上是关于如何使用两个 NSPredicates 获取请求 - Swift 2的主要内容,如果未能解决你的问题,请参考以下文章

核心数据关系、NSPredicates 和 NSFetchedResultsController

使用 NSPredicates 过滤 NSMutableArray

使用 2 个 NSPredicates?

NSPredicates 和双对 n 关系

在 NSFetchRequest 上设置 2 个 NSPredicates

ios中的多个NSPredicates到单个数组值