Objective-C是否有CF_SWIFT_NAME()的副本?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Objective-C是否有CF_SWIFT_NAME()的副本?相关的知识,希望对你有一定的参考价值。
有没有办法修复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()
宏。
答案
是的,您可以使用@objc
属性实现:
@objc(convertFoo:)
static func convert(foo: Foo) -> Bar { ... }
来自Swift参考资料中的"Attributes":
objc
属性可选地接受单个属性参数,该参数由标识符组成。如果要为objc
属性适用的实体为Objective-C公开其他名称,请使用此属性。您可以使用此参数来命名类,枚举,枚举情况,协议,方法,getter,setter和初始化程序。
以上是关于Objective-C是否有CF_SWIFT_NAME()的副本?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Objective-c 项目中使用 Alamofire 的 Swift 文件?