【发布时间】:2014-08-11 02:32:21
【问题描述】:
我正在迁移一个 UIViewController 类以使用 Swift 进行一些训练。我通过桥接头成功使用了 Objective-C 代码,但我需要导入一个包含 #define 指令的常量文件。
我在Using Swift with Cocoa and Objective-C(简单宏)中看到了以下内容:
简单宏
在 C 和 Objective-C 中通常使用
#define指令来定义原始常量,而在 Swift 中则使用全局常量。例如,常量定义#define FADE_ANIMATION_DURATION 0.35在Swift 中可以用let FADE_ANIMATION_DURATION = 0.35更好地表达。因为简单的类常量宏直接映射到 Swift 全局变量,所以编译器会自动导入在 C 和 Objective-C 源文件中定义的简单宏。
所以,这似乎是可能的。我已将包含我的常量的文件导入到桥接头中,但我的 .swift 文件中没有可见性,无法解析。
我应该怎么做才能让我的常量对 Swift 可见?
更新:
似乎可以使用NSString 常量,但不能使用布尔值:
#define kSTRING_CONSTANT @"a_string_constant" // resolved from swift
#define kBOOL_CONSTANT YES // unresolved from swift
【问题讨论】:
-
尝试使用 true 而不是 YES。
标签: objective-c macros swift