objective-c - 无法导入桥接头

标签 objective-c xcode swift ios8 chartboost

我已经阅读了很多处理类似问题的问题和答案,但我还没有找到解决方案。如果有人能阐明一些观点,那就太好了。

我创建了一个 Swift 项目,现在我想将它与一些 Objective-C 结合起来。我的“无法导入桥接 header ”仅在我尝试#import 我的 Chartboost.h 文件时出现。因此,只要我的桥接头文件中没有任何内容,Xcode 就会找到它并且不会给我任何问题。但是一旦我添加了这个:

#import <Chartboost/Chartboost.h>

我收到错误以及其他 38 个错误,提示“Swift 编译器错误 - 此处不允许定义函数”。

我已经正确地导入了我的框架。而且我的框架搜索路径是正确的。而且只有当我导入 Chartboost 框架时。 UIKit 和 Foundation 工作正常。

这是导致问题发生的原因....首先,我创建了一个新的 Obj-C 文件,然后在 Xcode 给我一个弹出窗口询问它是否可以配置桥接头时单击"is"。这创建了“FunFacts-Bridging-Header.h”

然后我确保 Objective-C Bridging Header 路径在 Swift Compiler - Code Generation 下是正确的。

我什至输入了一个非常具体的路径/Users/me/Desktop/FunFacts/FunFacts-Bridging-Header.h 它仍然显示“导入失败”。

我还将 Defines Module 设置为“Yes”(因为我听说这可能有帮助)。我的产品模块名称是 FunFacts。

为什么当我尝试添加 #import 时 FunFacts-Bridging-Header.h 导入失败?

最佳答案

我在另一篇文章中回答了这个问题:Chartboost integration issues with XCode 6.1

说明:

似乎有些 pod 和库不会费心导入基本框架,因为他们希望您的代码已经拥有它们。这不适用于 Swift,因为导入框架的方式发生了变化。 您需要做的就是在桥接头文件中添加所需的框架。

回答:

这取决于编译器抛出的错误。 如果它提示 NSObject , NSString等等...你需要添加 #import <Foundation/Foundation.h>在桥接头文件的顶部。

如果它提示UIView , UIButton等...您需要添加 #import <UIKit/UIKit.h>在桥接头文件的顶部。

关于objective-c - 无法导入桥接头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116288/

相关文章:

ios - 弹出到导航堆栈中的特定 View Controller

ios - Xcode 6 iOS 7 View 大小

iphone - 如何在我的 iPhone 应用程序中包含 512X512 图标?

ios - TableView单元格不断改变顺序

ios - 使用点唱机播放流中的音乐 - Swift,IOS

ios - 如何从 Objective-C 代码访问 Swift 类级枚举

ios - 在 UITextView 上隐藏 "Selection Preview"插入符

objective-c - 如何在没有用户输入的情况下使 NSMenu 定期下拉

Xcode 5.1 : New non-public APIs issue during validation of app

ios - 呈现 View Controller 时崩溃