【发布时间】:2018-01-14 02:17:48
【问题描述】:
我在 Swift 项目中导入了一些 Objective-C 文件,并尝试访问一些 Swift 类。
根据Apple's Guideline,我将@objc 添加到我希望将其公开给Objective-C 文件的方法中。
但问题是,这个“@objc”对我的 Swift 项目有什么副作用吗?
下面的代码是一个单例本地数据管理器。
@objc class LocalDataManager {
@objc public static let shared = LocalDataManager()
private init() {}
@objc var nickName: String {
get { return loadData("nickName") } // loadData is a convenience access method to UserDefaults
set { UserDefaults.standard.set(newValue, forKey: "nickName") }
}
}
【问题讨论】:
-
如果要暴露给OC,你别无选择。否则不要加@objc,对性能不好。
-
我同意@Lumiialxk 和答案。这是关于操作系统如何工作的。话虽如此-我不相信这实际上会对性能或大小产生任何影响-我不确定您是否需要在示例中将
@objc添加到所有内容中。只是类应该工作。如果有错误,我会删除此评论。 -
有关为什么会降低性能的解释,请参阅raizlabs.com/dev/2016/12/swift-method-dispatch
-
@Alexander 感谢您的分享。太好了!
标签: objective-c swift