MyClass3オブジェクトの配列をフィルタリングする必要があります。 MyClass2オブジェクトの配列はMyClass3オブジェクトのメンバーです(下記のコードを参照してください)。 MyClass2オブジェクトにはIDがあります。手元にidArrayがあります。 idArrayのすべてのIDが[MyClass2]メンバーに存在するMyClass3オブジェクトを除外する必要があります。そしてMyClass3(単位:units3)フィルタアレイで: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(units1単位)必要があるということです。
これは機能しません。誰かがあなたの代わりにNSPredicateの交差点操作を行う使用して行うことができ、この目的の
ありがとう:)それは働いた –