複数プロトコルを適用したOptional型の定義に戸惑ったのでメモ書きレベルです
複数プロトコルの適用した宣言
Optionalじゃないものはこれ。
安直に末尾に?をつけるとエラーになります.
.swift
class Hoge {
var fuga: SomeClass & HogeProtocol & FugaProtocol
}
複数プロトコルの適用したOptionalの宣言
書き方はいろいろありました。
カッコ
.swift
class Hoge {
weak var delegate: (SomeClass & SomeProtocol & FugaProtocol)?
}
シンタックスシュガーなし
.swift
class Hoge {
weak var delegate: Optional<SomeClass & SomeProtocol & FugaProtocol>
}
typealiasの利用。
.swift
typealias HogeDelegate = SomeClass & SomeProtocol & FugaProtocol
class Hoge {
weak var delegate: HogeDelegate?
}