2016-09-28 3 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") 
      } 
     } 
    } 
} 

나는 이것이 허용되지 않는다고 생각합니다. 그러나 모두가 작동하게하는 방법을 알고 있다면 대단히 감사하겠습니다. 나에게는 많은 중복 코드가 저장 될 것이다.Swift에서 객체 유형 전달 및 캐스팅

답변

1

왜 그렇게 했습니까? 단순히 Hashable 프로토콜을 구현하고 == 연산자를 재정 의하여 두 객체를 비교할 수 있습니다. 그런 다음 간단히 다음과 같이 작성할 수 있습니다. x == y.