4
class Controller<U: NSObject> {}
protocol Robert {
associatedtype T
associatedtype U: Controller<T>
var fetcher: U { get }
}
class Telephone: NSObject {}
class Object: Telephone {}
class Turtle: Controller<Object> {}
class Fish: Robert {
typealias T = Object
typealias U = Turtle
let x = Turtle()
var fetcher: Turtle {
return x
}
}
私はなぜそれが理解できません。どんな助けもありがたい。クラスがプロトコルに準拠していません。どうして?
XCodeの 'fix it'オプションを選択すると、 'Fetcher'のスタブが挿入されます。しかし、Fetcherにはすでにタイプアリアがあります。
タートルはコントローラである必要があります? –
はい、この仮説的な状況では、タートルはコントローラになる必要があります –
バグとして提起されました:https://bugs.swift.org/browse/SR-6218 –