2016-09-28 4 views
0
class TEST1 : NSObject { 

var name : String? 
} 
class TEST2 : NSObject { 

var name : String? 
} 
func compareObjects<T>(array1: [NSObject], array2: [NSObject], type:T.Type) { 

for objectA in array1 { 
    let x = objectA as! T 
    for objectB in array2{ 
     let y = objectA as! T 
     if x.name == y.name { 
      print("found a match") 
      } 
     } 
    } 
} 

これは許可されていないと思われます。 しかし、あなたがすべてそれを働かせる方法を知っていれば、それは非常に高く評価されるでしょう。私には重複したコードがたくさん保存されます。スウィフトでのオブジェクト型の受け渡しとキャスト

答えて

1

なぜそうですか?単純にHashableプロトコルを実装し、オーバーライド==演算子を使用して2つのオブジェクトを比較することができます。次に、ループなしでx == yと書くだけです。