我有一个类似这样的Objective-C协议:
@protocol TestProtocol
- (void)releaseProtocol;
@end
Swift 3.0会自动将其转换为
protocol TestProtocol {
func release()
}
然而这会引起一个问题,因为如果我有一个继承自NSObject的类,编译器就会抱怨,因为协议中的release()与NSObjectProtocol中的release()发生了冲突。
class TestClass: TestProtocol, NSObject
{
func release() { #?@#.! } // Compiler error
}
当前,由于SDK不可修改,我无法更改源协议。
是否有一种方法可以告诉Swift编译器将其转换为不同的名称,或指定fooRelease()方法对应于TestProtocol.release()方法?
NSObject
类的Swift 3用户无效,这取决于你的Swift 3用户群体中有多少人已经在他们的非NSObject
类中实现了release()
方法... - Rob