[英]NSManagedObject and protocol conformance
這是我的問題,我有一個類型( MyManObj ),它是NSManagedObject
的子NSManagedObject
。
此類型有兩個字段: fieldOne , fieldTwo : Int16
我也有這樣定義的協議:
@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.