我需要過濾出一個MyClass3對象數組。 MyClass2對象數組是MyClass3對象的成員(請參閱下面的代碼)。 MyClass2對象有一個id。我手邊有一個idArray。我需要過濾掉其中[MyClass2]成員中存在idArray中的所有id的MyClass3對象。Swift - 用成員數組的屬性過濾數組
class MyClass2 : NSObject {
var uid: Int = 0
init(uid : Int) {
self.uid = uid
}
}
class MyClass3 : NSObject {
var arr: [MyClass2]
init(units: [MyClass2]) {
arr = units
}
}
var units1 = [MyClass2(uid: 1),MyClass2(uid: 2), MyClass2(uid: 3), MyClass2(uid: 4), MyClass2(uid: 5)]
var units2 = [MyClass2(uid: 4),MyClass2(uid: 5), MyClass2(uid: 6)]
var units3 = [MyClass2(uid: 3),MyClass2(uid: 5), MyClass2(uid: 7), MyClass2(uid: 1)]
var ids = [1,5]
var available3: [MyClass3] = [MyClass3(units: units1), MyClass3(units: units2), MyClass3(units: units3)]
var filtered3: [MyClass3] = []
let searchPredicate: NSPredicate = NSPredicate(format: " ANY arr.uid IN \(ids)") // needed predicate
print(searchPredicate.predicateFormat)
filtered3 = (available3 as NSArray).filteredArrayUsingPredicate(searchPredicate) as! [MyClass3]
需要的答案是我們在過濾的數組中需要MyClass3(units:units1)和MyClass3(units:units3)。
這不行。有人建議可以斷言格式用於此目的
謝謝:)它的工作 –