当我尝试以这种方式实现我的协议时:
protocol Serialization {
func init(key keyValue: String, jsonValue: String)
}
我收到错误消息:函数声明中的预期标识符。
为什么我收到此错误?
答案 0 :(得分:86)
是的,你可以。但是你永远不会把func
放在init
前面:
protocol Serialization {
init(key keyValue: String, jsonValue: String)
}
答案 1 :(得分:26)
要点:
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
}
}
请注意init
方法前面的必需关键字。