如何使用基于数组的NSPredicate过滤Core Data对象

时间:2015-12-28 18:43:28

标签: ios swift core-data nspredicate

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

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

type可以使用以下名称之一:"红色","绿色","蓝色","黑色&#34 ;

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

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

1 个答案:

答案 0 :(得分:2)

您可以尝试下面的内容

[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])