2014-07-08 3 views
2

현재 제가 연구하고있는 프로젝트는 많은 제네릭을 사용합니다. 와일드 카드를 사용하려고 할 때 문제가 있습니다.제네릭의 신속한 와일드 카드

자바에서 나는 수행 할 수 있습니다

public class testGeneric<T> { 

} 
public class testing { 
    public <T> void test (testGeneric<T> input) { 
      testGeneric<?> testOne = input; 
    } 
} 

을 오류없이.

Swift에서는 AnyObject를 사용하고있었습니다 (모든 객체의 기반이됨에 따라 같은 방식으로 사용할 수 있다고 가정했기 때문에).

그러나 다음 오류 발생 (특히 "T는 AnyObject 동일하지 않은")

class testGeneric<T> { 

} 

class testing { 
    func test <T> (input: testGeneric<T>) { 
     var testOne: testGeneric<AnyObject> = input 
    } 
} 

I 발견 조각 주위 검색 후 "와일드 카드 패턴"스위프트 (구체적으로 존재한다는 "_"). 그러나 이것은 generics에서 작동하지 않는 것처럼 보입니다.

이 주위에 방법이 있나요?

미리 감사드립니다.

+0

이'AnyObject'이 구조체 및 프리미티브에 포함되지 않습니다. 대신에 Any 함수를 사용하여 함수를 제외한 모든 함수가 실행될 수 있지만 작동하지 않을지 확실하지 않습니다. – connor

+0

@connor Any를 사용하여 시도했지만 불행히도 같은 문제가 있습니다. – Zenton

+0

예. 대신 캐스트를 시도 할 수 있습니다. 'let var testOne : testGeneric = 다음 형식으로 입력 하시겠습니까? testGeneric {/ * code * /}'T가 함수 타입이면 – connor

답변

0

나는 당신이 찾고있는 것은 생각 :

class testGeneric<T> { 
} 

class testing { 
    func test <T> (input: testGeneric<T>) { 
     var testOne: testGeneric<T> = input 
    } 
}