我一直在寻找新的Swift语言试图在互联网上浏览后找到Swift中接口(在java中)或协议(在objective-c中)的等价物在Apple提供的书中搜索,我似乎无法找到它。
有没有人知道swift中这个组件的名称是什么?它的语法是什么?
答案 0 :(得分:46)
Protocols in 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风格的模板;基本上,编译器复制声明并将其粘贴到符合协议的每个对象中。
答案 1 :(得分:10)
swift也有协议,here是相关文档: