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