簡體   English   中英

具有約束的Swift協議擴展不會使類符合該協議

[英]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.

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