Ios 基于数组的NSPredicate核心数据对象过滤

Ios 基于数组的NSPredicate核心数据对象过滤,ios,swift,core-data,nspredicate,Ios,Swift,Core Data,Nspredicate,假设我有一些基于以下对象的核心数据: class TestObject { var name: String var type: String } 类型可以有以下名称之一:“红色”、“绿色”、“蓝色”、“黑色” 现在我想过滤数据,不是基于一种类型,而是基于一个类型数组,如下所示: public static func typePredicate(types: [String]) -> NSPredicate { return NSPredicate(format:

假设我有一些基于以下对象的核心数据:

class TestObject {
   var name: String
   var type: String
}
类型
可以有以下名称之一:“红色”、“绿色”、“蓝色”、“黑色”

现在我想过滤数据,不是基于一种类型,而是基于一个类型数组,如下所示:

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 predicateWithFormat:@"ANY %K IN %@",object.field,types]
编辑: 迅速地


您正在查找IN关键字。例如(“输入%@”,类型);如果你想进一步阅读,这里有一个参考:谢谢。成功了。
var types = ["Red","Blue","Green"]
var predicate : NSPredicate = NSPredicate(format: "ANY %K IN %@", 
                               argumentArray: [object.field, types])