Avatar
protocol MyViewProtocol { var button: Button { get } } protocol HasMyViewProtocol: MyViewProtocol { associatedtype MyView: MyViewProtocol var myView: MyView { get } } extension HasMyViewProtocol { var button: Button { return myView.button } }
3:57 AM
こんな感じだ
3:58 AM
そうするとMyViewをsubviewとして持つ全てのImplementationが、buttonにアクセスできるし、functionの実装をextension MyViewProtocol に置けば全部使えるようになる