如何在Objective-C中使用Swift结构

丁泉:

简单地说,我有一个存储应用程序常量的结构,如下所示:

struct Constant {

    static let ParseApplicationId = "xxx"
    static let ParseClientKey = "xxx"

    static var AppGreenColor: UIColor {
        return UIColor(hexString: "67B632")
    }
}

Constant.ParseClientKey例如,可以通过调用在Swift代码中使用这些常量但是在我的代码中,它还包含一些Objective-C类。所以我的问题是如何在Objective-C代码中使用这些常量?

如果这种声明常量的方法不好,那么在Swift和Objective-C代码中使用全局常量的最佳方法是什么?

林太郎:

可悲的是,你不能暴露struct,也不是Objective-C的全局变量。请参阅文档

到目前为止,恕我直言,最好的方法是这样的:

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];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Swift项目中使用Objective-C CocoaPods

如何在Objective-C中使Swift String枚举可用?

如何在Swift中使用Objective-C枚举

Swift中inout参数的方法如何在Objective-C中使用?

如何在Objective-C中使用后台线程?

如何在Swift中使用具有只读属性的Objective-C协议

如何在框架中使用Swift扩展Objective-C类?

如何在Objective C中使用* .so库?

如何在Objective-C中使用NSOperation和NSOperationQueue?

如何在SwiftPM的Objective-C模块中使用swift模块?

如何在我的Swift项目中使用Objective-C项目

如何在框架的Objective-C文件中使用Swift类?

如何在Swift中使用Objective-C NSMeasurement类别方法?

如何在C / C ++中使用结构?

如何在Objective-C中使用GLKMatrixStack?(GLKit)

如何在Swift中使用名称为Objective-C的类作为关键字

如何在Objective-C中使用此枚举?

如何在objective c 中使用json web 服务?

如何在 Objective C 中使用 JS Context SetObject

如何在iphone中使用objective c创建嵌套目录?

如何在 Objective-C 中使用存储属性

如何在objective c ios中使用multipart上传图像?

如何在 Objective C 中使用 Safari 打开表单?

如何在Objective C中使用托管对象?

如何在 Objective C 中使用 CallKit

如何在结构中使用联合访问 C 结构

如何在没有桥接头的情况下在 Swift 中使用 Objective-C 框架?

如何在 Objective-C 中使用 swift 协议实现?

如何在 Objective-C 代码中使用导入的 Swift 协议和类?