Swift 2.2:不再导入GCC_PREPROCESSOR_DEFINITIONS常量

时间:2016-03-28 16:47:18

标签: xcode swift

2 个答案:

答案 0 :(得分:5)

感谢您指出该错误,不会在一段时间内想出这个。如果有任何帮助,我最后添加了一个额外的objc常量桥接到Swift并使用来自swift的桥接常量:

// Constants.h
extern NSString *const kDropBoxAPIKey;

// Constants.m
NSString *const kDropBoxAPIKey = DROPBOX_API_KEY;

// xxx-Bridging-Header.h
#import "Constants.h"

然后在Swift中使用桥接键

// xx.swift
...
// let auth = DropboxAuth(appKey: DROPBOX_API_KEY) 
let auth = DropboxAuth(appKey: kDropBoxAPIKey)
...

答案 1 :(得分:0)

您可以在桥接头文件中声明另一个类似的宏。想象一下,我们在预处理定义中有MY_MACRO个宏。 Swift代码没有看到它。在桥接头文件中,我们可以定义另一个宏:

#define MY_MACRO2 MY_MACRO

现在在Swift代码中使用MY_MACRO2。当Apple修复此问题时,您需要将MY_MACRO2重命名为MY_MACRO