有时候我们在调试Swift程序的时候会出现如下的情况:
Type ‘SomeClass’ does not conform to protocol ‘SomeProtocol’
碰到这个问题该怎么解决了?
我们到苹果Swift开发文档看看参考文档
里面有Initializer Requirements
当我们定义一个protocol的时候,如下示例:
protocol SomeProtocol {
init(someParameter: Int)
}
然后再定义一个继承改protocol的类,如下:
class SomeClass: SomeProtocol {
required init(someParameter: Int) {
// initializer implementation goes here
}
}
如果你在实现SomeClass时而没有实现这个SomeProtocol的init方法,会有如题的提示:
原因:
Protocols can require specific initializers to be implemented by conforming types. You write these initializers as part of the protocol’s definition in exactly the same way as for normal initializers, but without curly braces or an initializer body.
大意就是你如果继承了该protocol,则你必须实现它。