iOS:Objective C代码如何在Swift中读取静态变量?

Wil*_*lex 8 objective-c ios swift

例如,假设我有一个类似于静态变量pi的类.

let pi: Double = 3.1415926

 class MyClass {
// ...
 }
Run Code Online (Sandbox Code Playgroud)

如何允许Objective C代码使用静态变量pi?projectName-Swift.h类将具有自动生成的代码(只是一个小例子而不是100%准确).

  SWIFT_CLASS("_MyClass")
 @interface MyClass : NSObject
 - (instancetype)init OBJC_DESIGNATED_INITIALIZER;
 @end
Run Code Online (Sandbox Code Playgroud)

所以pi没有被添加到projectName-Swift.h中.这是关于我的项目正在发生的一个小例子,也许它应该生成静态变量,我错过了一些东西.任何提示或建议,以解决这个问题或使这项工作,将不胜感激.

小智 23

您无法在Objective C上访问Swift全局变量.

只要与Objective-C兼容,您就可以访问使用@objc属性标记的类或协议中的任何内容.这不包括仅限Swift的功能,例如此处列出的功能:

  • 泛型
  • 元组
  • Swift中定义的枚举
  • Swift中定义的结构
  • Swift中定义的顶级函数
  • Swift中定义的全局变量
  • 在Swift中定义的Typealiases
  • Swift风格的可变参数
  • 嵌套类型
  • 咖喱功能

使用Swift与Cocoa和Objective-C

也查看这篇文章.