当我尝试以这种方式实现我的协议时:
protocol Serialization {
func init(key keyValue: String, jsonValue: String)
}
我收到一条错误消息:函数声明中的预期标识符。
为什么我会收到此错误?
当我尝试以这种方式实现我的协议时:
protocol Serialization {
func init(key keyValue: String, jsonValue: String)
}
我收到一条错误消息:函数声明中的预期标识符。
为什么我会收到此错误?
是的你可以。但你从来没有放在func
前面init
:
protocol Serialization {
init(key keyValue: String, jsonValue: String)
}
这里的要点:
func
在方法前面有关键字init
。init
在您的协议中调用了该方法,因此您现在需要在该init
方法前面加上关键字required
. 这表明您遵守的协议要求您拥有此init
方法(即使您可能独立地认为这是一个好主意)。正如其他人所涵盖的那样,您的协议将如下所示:
protocol Serialization {
init(key keyValue: String, jsonValue: String)
}
例如,符合此协议的类可能如下所示:
class Person: Serialization {
required init(key keyValue: String, jsonValue: String) {
// your logic here
}
}
注意方法前面的requiredinit
关键字。