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 (장치 1 대)를 필요로한다는 것이다.
이것은 제대로 작동하지 않습니다. 누군가가이 목적을 위해 술어 형식을 제안 할 수
고마워요 :) 그것은 효과가있어. –