在桥接头中导入头文件导致的 Swift 编译器错误
Posted
技术标签:
【中文标题】在桥接头中导入头文件导致的 Swift 编译器错误【英文标题】:Swift Compiler Errors caused by Importing Header File in Bridging Header 【发布时间】:2017-04-01 23:41:48 【问题描述】:-
我的项目成功构建并运行。
我创建了一个桥接头,以便在我的 Swift 和 Objective-C 视图之间切换。
我在桥接头中导入了我的 Objective-C 头文件。
突然间,我导入的 Objective-C 头文件中有 40 个 swift 编译器错误。 (附图片了解详情)
Image
为什么会发生这种情况,我该如何解决?我的 ViewController.h 文件在我将其导入桥接头之前完美运行。
【问题讨论】:
您提供的信息非常少,任何人都可以根据这些信息做出回答。 1) 屏幕截图中的一个错误是 Objective C 错误,而不是 Swift。 2)除了桥接头之外,您是否在任何地方导入 ViewController.h? 3)如果您保留桥接头并注释掉#import "ViewController.h"
是否有任何行为改变?
嗨。是的,我在头文件中执行了#import "ViewController.h",当我将其注释掉时,没有错误(项目构建良好)。
第二题呢?
另外,请分享 ViewController.h 的内容
pastebin.com/EVxPw8jj 错误发生在我定义常量的行上,说“预期';'在声明列表的末尾"
【参考方案1】:
要在 Objective C 头文件中定义常量,您需要执行以下操作:
// header file
FOUNDATION_EXPORT static CGFloat MyNamespaceAlpha;
// implementation file
static CGFloat MyNamespaceAlpha = 0.8f;
【讨论】:
以上是关于在桥接头中导入头文件导致的 Swift 编译器错误的主要内容,如果未能解决你的问题,请参考以下文章
在“发布”构建配置中看不到在桥接头中导入的头,但在“调试”构建配置中可见
使用 cocoapods 的 PayPal-iOS-SDK 在桥接头中引发错误