簡體   English   中英

NSManagedObject和協議的一致性

[英]NSManagedObject and protocol conformance

這是我的問題,我有一個類型( MyManObj ),它是NSManagedObject的子NSManagedObject

此類型有兩個字段: fieldOnefieldTwoInt16

我也有這樣定義的協議:

@objc protocol MyProtocol {
    var fieldOne:Int16 {get set}
    var fieldTwo:Int16 {get set}
}

我需要表達一個事實,即MyManObj符合MyProtocol 而且我不知道該怎么做。

我試圖添加這樣的代碼,但是它不起作用:

extension MyManObj:MyProtocol {}

恰好我收到此消息:

Type 'MyManObj' does not conform to protocol 'MyProtocol'.

然后,我嘗試了更多的變體,但沒有興趣,因為它們失敗了。

之所以出現此錯誤,是因為協議中的變量/屬性未標記為可選(即它們是必需的),並且編譯器要求您實現協議中聲明的所有方法/屬性。

要解決此問題,您可以執行以下操作:

@objc protocol MyProtocol: class {
     optional var fieldOne:Int16 {get set}
     optional var fieldTwo:Int16 {get set}
 }

要么

extension MyManObj:MyProtocol {
    var fieldOne:Int16 {
        get{}
        set{}
    }
    var fieldTwo:Int16 {
        get{}
        set{}
    }
}

暫無
暫無

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

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