【发布时间】:2014-11-16 18:28:34
【问题描述】:
我正在做一个项目,我必须使用一些 Swift 代码来扩展一个 Objective-C 应用程序。所以我需要从 .m 文件中访问 Swift 代码。
我导入了生成的 Swift.h 文件,现在我可以访问方法,但不能访问全局变量。
有可能吗?
谢谢!
【问题讨论】:
标签: objective-c swift global
我正在做一个项目,我必须使用一些 Swift 代码来扩展一个 Objective-C 应用程序。所以我需要从 .m 文件中访问 Swift 代码。
我导入了生成的 Swift.h 文件,现在我可以访问方法,但不能访问全局变量。
有可能吗?
谢谢!
【问题讨论】:
标签: objective-c swift global
根据Apple's docs 关于 Swift 和 Objective-C 类型兼容性的回答是否定的:
当您创建一个继承自 Objective-C 类的 Swift 类时,与 Objective-C 兼容的类及其成员(属性、方法、下标和初始化器)会自动从 Objective-C 中获得。这不包括仅限 Swift 的功能,例如此处列出的功能:
- 泛型
- 元组
- 在没有
Int原始值类型的 Swift 中定义的枚举- Swift 中定义的结构
- Swift 中定义的顶级函数
- Swift 中定义的全局变量
- Swift 中定义的类型别名
- Swift 风格的可变参数
- 嵌套类型
- 柯里化函数
【讨论】:
@objc 标志并从 Int 派生来桥接在 swift 中定义的枚举。