次の2つのprotocolの書き方は同じことを表現できていますか? それとも違う意味ですか?
次の2つのプロトコルの書き方は同じことを表現できていますか? それとも違う意味ですか?
ソース1
protocol Hogeable: AnyObject {}
extension Hogeable where Self: UIViewController {}
と
ソース2
protocol Hogeable: UIViewController {}
extension Hogeable {}
ソース1の書き方をよく見るような気がしたのですが、どこかのSwfitのバージョンでソース2の書き方もできるようになったりしましたでしょうか?
上記のコードは空っぽですが、
Hogeable
のextension
内はUIViewController
であることが前提のソースコードを書かれていることを想定しています(navigationController
にアクセスするとか)。