함수에 매개 변수로 인터페이스를 전달해야합니다. 인터페이스는 일반적으로 a.k.a.에는 연관된 유형이 있습니다. 나는 그것을 할 수있는 좋은 방법을 찾지 못했습니다.Swift에서 관련 유형 (일반 프로토콜)의 프로토콜을 매개 변수로 전달하는 방법은 무엇입니까?
protocol IObserver : class {
typealias DelegateT
...
}
class Observer: IObserver {
typealias DelegateT = IGeneralEventsDelegate // IGeneralEventsDelegate is a protocol
...
}
func notify(observer: IObserver) { ... } // here I need a type for observer param
내가이 작동합니다 발견 : 여기 내 코드입니다
func notify<T: IObserver where T.DelegateT == IGeneralEventsDelegate>(observer: T) { ... }
는하지만 너무 복잡 어서. 클래스 변수에이 param을 저장하려면이 함수로 인해 전체 클래스를 generic으로해야합니까?
저는 C++ 개발자이고 Swift 언어에 익숙하지 않습니다. 그러나 일은 너무 복잡하고 사용자가 친숙하지 않습니다 ... 아니면 너무 어리 석습니다.
에 그랬던 것처럼 아마 당신은 명시 적 관련 유형을
여기에 내 관련 답변보기 ---> http://stackoverflow.com/a/34995198/5389500 – eonist