[英]Swift protocol extension with constraint won't make class to conform that protocol
我現在正在使用Swift學習一些POP(面向協議的編程)。 我創建了帶有擴展名的協議:
protocol ActivityIndicable {
func displayActivityIndicator()
func hideActivityIndicator()
}
extension ActivityIndicable where Self: UIViewController {
func dispayActivityIndicator() {
//display
}
func hideActivityIndicator() {
//hide
}
}
現在我有一些視圖控制器,可以說MyViewController:
class MyViewController: UIViewController, ActivityIndicable {
}
在編譯過程中,我得到警告,說MyViewController
不符合協議ActivityIndicable
。 你能解釋為什么嗎? 它應該“使用”受UIViewController
限制的擴展,不是嗎?
這是一個簡單的錯字:
func dispayActivityIndicator() {
您將“ l”放在“顯示”中。
但是您應該得到一個更具體的警告:
note: protocol requires function 'displayActivityIndicator()' with type '() -> ()'
如果不是,那可能表明您還有其他錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.