如何使用基于数组的NSPredcate筛选核心数据对象



假设我在Core data中有一些基于以下对象的数据:

class TestObject {
   var name: String
   var type: String
}

type可以有以下名称之一:"红色"、"绿色"、"蓝色"、"黑色"。

现在我想过滤我的数据,不是基于一种类型,而是基于一系列类型,比如这样:

public static func typePredicate(types: [String]) -> NSPredicate {
    return NSPredicate(format: "type == %@", types) // this line should test for an array of types, not one type
}

这可能与NSPredicate有关吗?

您可以尝试下面的

[NSPredicate predicateWithFormat:@"ANY %K IN %@",object.field,types]

编辑:在Swift 中

var types = ["Red","Blue","Green"]
var predicate : NSPredicate = NSPredicate(format: "ANY %K IN %@", 
                               argumentArray: [object.field, types])

最新更新