有没有办法修改Swift for Objective-C中实现的方法的名称?
Swift 方法
static func convert(foo: Foo) -> Bar
Objective-C 中的变为
+ (Bar *)convertWithFoo:(Foo *)foo;
而所需的名称是
+ (Bar *)convertFoo:(Foo *)foo; // without `With`
从Objective-C到Swift我会使用CF_SWIFT_NAME()
或NS_SWIFT_NAME()
宏。
答案 0 :(得分:5)
是的,您可以使用@objc
属性实现此目的:
@objc(convertFoo:)
static func convert(foo: Foo) -> Bar { ... }
来自Swift参考中的"Attributes":
objc
属性可选地接受单个属性参数,该参数由标识符组成。如果要为objc
属性适用的实体为Objective-C公开其他名称,请使用此属性。您可以使用此参数来命名类,枚举,枚举情况,协议,方法,getter,setter和初始化器。