title: Swift - Predicate to filter an array by a property of member array
body: <p>I need to filter out an array of MyClass3 Objects. An array of MyClass2 Objects is a member of MyClass3 object(Please refer to code below). MyClass2 object has an id. I have an idArray at hand. I need to filter out those MyClass3 objects in which all ids in idArray are present in its [MyClass2] member.</p>
  
  <pre><code>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]
  </code></pre>
  
  <p>The required answer is that we need MyClass3(units: units1) and MyClass3(units: units3) in the filtered Array.</p>
  
  <p>This is not working out. Can someone suggest a predicate format for this purpose</p>