假设我在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
删除MyClass
会导致上述编译错误消失,但我需要MyClass
对使用它的Objective-C代码可见。