Swift 4 - Public 修饰符不能在协议中使用

Swift 4 - Public modifiers cannot be used in protocols

如果协议中不能使用 public 修饰符,那么为什么 SDK 的协议中的方法是 public?

在 Objective-C 试试这个:

@protocol TaskManagerProtocol
@optional
- (void) test;
@end

现在看Swift生成的界面:

public protocol TaskManagerProtocol {
    optional public func test()
}

这就是您在 headers 中看到的现象。