NSPredicate 过滤多个字符串
NSPredicate filter by more than one string
如何制作一个同时过滤多个对象的 NSPredicate
?以下内容非常适合一个对象(在本例中为 KDED),但我正在尝试使用 swift2 同时获取例如 KDED、KDAB 和 KOMN。
let fetchRequest = NSFetchRequest(entityName: "Airport")
let sortDescriptor = NSSortDescriptor(key: "code", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
let predicate = NSPredicate(format: "code ==%@", "KDED")
fetchRequest.predicate = predicate
if let managedObjectContext = (UIApplication.sharedApplication().delegate as? AppDelegate)?.managedObjectContext {
fetchResultController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
fetchResultController.delegate = self
do {
try fetchResultController.performFetch()
Airports = fetchResultController.fetchedObjects as! [Airport]
} catch {
print(error)
}
}
使用IN
运算符:
let predicate = NSPredicate(format: "code IN %@", ["KDED", "KDAB", "KOMN"])
如何制作一个同时过滤多个对象的 NSPredicate
?以下内容非常适合一个对象(在本例中为 KDED),但我正在尝试使用 swift2 同时获取例如 KDED、KDAB 和 KOMN。
let fetchRequest = NSFetchRequest(entityName: "Airport")
let sortDescriptor = NSSortDescriptor(key: "code", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
let predicate = NSPredicate(format: "code ==%@", "KDED")
fetchRequest.predicate = predicate
if let managedObjectContext = (UIApplication.sharedApplication().delegate as? AppDelegate)?.managedObjectContext {
fetchResultController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
fetchResultController.delegate = self
do {
try fetchResultController.performFetch()
Airports = fetchResultController.fetchedObjects as! [Airport]
} catch {
print(error)
}
}
使用IN
运算符:
let predicate = NSPredicate(format: "code IN %@", ["KDED", "KDAB", "KOMN"])