それは無理ですSwiftでは、associatedtypeがあるprotocolにはキャストできません。 こんにちは。FiNCのiOSチームで開発をしているtakasekといいます。Swiftの型の話をします。 どういうことSwiftのprotocolは、associatedtypeがない場合に限り、存在型(そのprotocolと同じメンバを持つ具体型)として扱うことができます。(追記: 正確には「associatedtypeがない、かつ var hoge: SelfのようなSelfを使うメンバもない場合に限り」です。ご指摘感謝) しかしprotocolがassociatedtypeを持つ場合、型の構造が静的に定まりません。型情報を抽象的に扱う必要があるので、統一的に処理する場合genericなfuncを通さなくてはなりません。 protocol Animal { associatedty