簡體   English   中英

如何在Swift中擴展協議

[英]How to extend a protocol in Swift

在Swift中,我們如何定義擴展或專門化基本協議的協議? 文檔似乎沒有說清楚。

還不清楚,Swift協議是否符合/擴展NSObject協議? 這是一個有趣的問題,因為它會暗示Swift是否使用vtable或基於消息的調度來調用協議方法。

協議繼承使用Swift中的常規繼承語法。

protocol Base {
    func someFunc()
}

protocol Extended : Base {
    func anotherFunc()
}

默認情況下,Swift協議不符合NSObjectProtocol。 如果確實選擇使協議符合NSObjectProtocol,則會將協議限制為僅用於類。

語法與聲明從超類繼承的類相同。

protocol SomeProtocol { }

protocol SomeOtherProtocol: SomeProtocol { }

不,他們沒有。 如果您希望協議也符合NSObjectProtocol,您可以為新協議提供多種協議以符合這樣的要求。

protocol SomeOtherProtocol: SomeProtocol, NSObjectProtocol { }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM