任何人都可以解释以下协议语法:
protocol AddItemViewControllerDelegate: class {
func addItemViewControllerDidCancel(_ controller: AddItemViewController)
func addItemViewController(_ controller: AddItemViewController,
didFinishAdding item: ChecklistItem)
}
“班级”做什么?
答案 0 :(得分:2)
这意味着该协议只能由类采用。所以没有Structure或Enum可以采用这个协议。
仅限类协议
您可以将协议采用限制为类类型(而不是结构或类型) 枚举)通过将AnyObject协议添加到协议的 继承清单。
protocol SomeClassOnlyProtocol: AnyObject, SomeInheritedProtocol { // class-only protocol definition goes here }
在上面的示例中,SomeClassOnlyProtocol只能由类类型采用。它的 编写结构或枚举定义的编译时错误 试图采用SomeClassOnlyProtocol。
注意强>
在该协议定义的行为时使用仅类协议 要求假定或要求符合类型具有参考 语义而不是价值语义。有关参考和价值的更多信息 语义,请参阅结构和枚举是值类型和类 是参考类型。