由於Self具有運行時動態特性,實現protocol必須禁止類的繼承,否則,由於類型確定導致編譯器不通過,具體詳見如下例子:````swiftprotocol AProtocol{ func createViewController() -> Self?}final class BClass:APr... ...
由於Self具有運行時動態特性,實現protocol必須禁止類的繼承,否則,由於類型確定導致編譯器不通過,具體詳見如下例子: ````swift protocol AProtocol{ func createViewController() -> Self? } final class BClass:AProtocol{ func createViewController() -> BClass? { return BClass() } } ```` 上例中有兩個關鍵點: 1. 實現介面的類返回值為類的本身,而不是Self 2. 類必須是final