在互联网上浏览并搜索Apple提供的书籍后,我一直在寻找新的Swift语言,试图找到Swift中的接口(java)或协议(objective-c)中的等效项。我似乎还是找不到。
有人迅速知道这个组件的名称是什么吗?
Swift中的协议与Objc非常相似,除了您不仅可以在类上使用它们,而且还可以在结构和枚举上使用它们。
protocol SomeProtocol { var fullName: String { get } // You can require iVars class func someTypeMethod() // ...or class methods }
遵守协议有些不同:
class myClass: NSObject, SomeProtocol // Specify protocol(s) after the class type
您还可以使用默认(可重写)功能实现扩展协议:
extension SomeProtocol { // Provide a default implementation: class func someTypeMethod() { print("This implementation will be added to objects that adhere to SomeProtocol, at compile time") print("...unless the object overrides this default implementation.") } }
注意:默认实现必须通过扩展添加,而不是在协议定义本身中添加-协议不是具体的对象,因此它实际上不能附加方法主体。 将默认实现视为C样式的模板;本质上,编译器复制声明并将其粘贴到遵守协议的每个对象中。