假设我在 Swift 中定义了一个协议:
public protocol MyProtocol {
func myMethod() -> String
}
然后我在同一个源文件中定义一个类:
public class MyClass: NSObject {
var myVariable = ""
func myOtherMethod()
}
然后,我添加一个扩展名来MyClass
指定MyProtocol
同一个源文件中的一致性:
extension MyClass: MyProtocol {
func myMethod() -> String {
return "abc"
}
}
当我尝试在 Xcode 7.2 中编译上述代码时,我收到一个编译器错误,告诉我需要为每个扩展的方法添加一个公共装饰器:
extension MyClass: MyProtocol {
public func myMethod() -> String {
return "abc"
}
}
有没有办法避免像上面那样用 注释类扩展中的每个方法public
?
注意:我知道删除public
fromMyClass
会使上述编译错误消失,但我需要MyClass
对使用它的 Objective-C 代码可见。