如何使用两个 NSPredicates 获取请求 - Swift 2
Posted
技术标签:
【中文标题】如何使用两个 NSPredicates 获取请求 - Swift 2【英文标题】:How to use two NSPredicates for fetch request - Swift 2 【发布时间】:2016-03-02 03:07:30 【问题描述】:我试图通过这样做将两个NSPredicate
s 用于单个提取请求,
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