遗憾的是,你不能将struct
或全局变量expose 于Objective-C.参见the documentation,其中部分陈述:
需要Objective-C互操作性时使用类
如果使用需要处理数据的Objective-C API,或者需要将数据模型放入Objective-C框架中定义的现有类层次 struct 中,则可能需要使用类和类继承来建模数据.例如,许多Objective-C框架公开了您希望子类化的类.
到目前为止,IMHO,最好的方法是这样的:
let ParseApplicationId = "xxx"
let ParseClientKey = "xxx"
let AppGreenColor = UIColor(red: 0.2, green: 0.7, blue: 0.3 alpha: 1.0)
@objc class Constant: NSObject {
private init() {}
class func parseApplicationId() -> String { return ParseApplicationId }
class func parseClientKey() -> String { return ParseClientKey }
class func appGreenColor() -> UIColor { return AppGreenColor }
}
在Objective-C中,可以这样使用它们:
NSString *appklicationId = [Constant parseApplicationId];
NSString *clientKey = [Constant parseClientKey];
UIColor *greenColor = [Constant appGreenColor];