按照说明,我创建了一个桥接头,并将其添加到我的项目中。不幸的是,发生以下错误:
:0:错误:无法导入Objective-C标头'---标头/....h'的路径
在构建设置中,我将标头搜索路径字符串添加到了桥接标头的位置,但是没有任何帮助。
有人遇到过这个问题吗?
按照说明,我创建了一个桥接头,并将其添加到我的项目中。不幸的是,发生以下错误:
:0:错误:无法导入Objective-C标头'---标头/....h'的路径
在构建设置中,我将标头搜索路径字符串添加到了桥接标头的位置,但是没有任何帮助。
有人遇到过这个问题吗?
Answers:
注意将文件添加到您的错误所在的文件夹中!我犯了同样的错误,如果您从Xcode创建文件,它将进入以下文件夹:Project-> Project-> Header.h
Xcode正在寻找Project-> Header.h
这意味着您需要将文件放入项目文件夹(ProjectName-> ProjectNameFolder)!
希望能有所帮助;)
更新:我不确定我是否明白您的意思,但是请尝试通过以下方法解决您的问题:
1.删除您到目前为止创建的所有桥接文件。
2.选择项目的主文件夹,然后单击新文件-> iOS-> Header文件。
3.将导入内容写入创建的头文件中。
4.在Xcode-> Build Settings中选择项目,在搜索字段中键入:bridged,然后在密钥SWIFT_OBJC_BRIDGING_HEADER中输入标题文件的名称或路径!
如果您按照此步骤操作,将在正确的位置创建头文件!
:D希望有帮助!
就我而言,这实际上是循环引用导致的错误。我在桥接头文件中导入了一个类,而该类的头文件正在导入swift头文件(<MODULE_NAME>-Swift.h
)。我这样做是因为在Obj-C头文件中,我需要使用在Swift中声明的类,因此解决方案是仅使用@class
声明性代码。
因此,基本上错误是“无法导入桥接头文件”,上面的错误表示<MODULE_NAME>-Swift.h
文件未找到,上面的错误是指向特定的Obj-C头文件(即视图控制器)的错误。
检查此文件时,我注意到它在标头中声明了-Swift.h。将此导入移动到实施中可以解决此问题。所以我需要使用一个对象,让我们MyObject
在Swift中定义它,所以我只是简单地将标题更改为
@class MyObject;
在以下位置找到路径:
构建设置/快速编译器-代码生成/ Objective-C桥接头
并删除该文件。那你应该没事。
这可能只会影响一小部分人,但是在我的情况下,我的项目是使用CocoaPods,并且其中一个豆荚具有自己的CocoaPods子规格。解决方案是使用全角度导入引用子窗格中的任何文件。
#import <HexColors/HexColor.h>
而不是
#import "HexColor.h"
“我们需要告诉Xcode在哪里找到我们在桥接头中列出的头文件。找到“搜索路径”部分,并更改“ 用户头搜索路径”的项目级设置,为“ Pods”添加一个递归项目录:Pods / **“ http://swiftalicio.us/2014/11/using-cocoapods-from-swift/
我也遇到了这个问题,可悲的是,这只是SDK + Xcode中的错误。我与WWDC的工程师进行了交谈,谈到了这个问题以及CloudKit遇到的其他一些问题。这些错误将在Xcode的下一个种子中解决。
这是使用Beta版软件的有趣部分。
对于那些难以将快速类添加到Objective-C项目中的人。这是对我有用的:
就是这样。现在像在Objective-C中一样在您的代码中创建swift类。
我从cocoapods的桥接头文件中导入了一些文件,但方式不正确。
而不是导入
#import <SomeCocoaPod/SomeCocoaPod.h>
我写
#import "SomeCocoaPod.h"
这是我巨大的错误
将临时的Objective-C文件添加到您的项目。您可以给它取任何喜欢的名字。
选择是,配置一个Objective-C桥接头。
删除刚刚创建的临时Objective-C文件。
在刚刚创建的projectName-Bridging-Header.h文件中,添加以下行:
'#import <GoogleMaps / GoogleMaps.h>'
编辑AppDelegate.swift文件:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
GMSServices.provideAPIKey("AIza....") //iOS API key
return true
}
点击链接获取完整示例
经过最初几天的努力,我终于成功将Facebook注册成功集成到我的iOS应用程序中。这是步骤(我假设您已经在计算机中安装了Facebook SDK v4.1或更高版本):
如此处所述在 pList中添加信息
构建您的应用。哇!没有编译时错误。
由于不同的原因,我有同样的问题,这是我的情况,我构建的项目需要包含幻灯片菜单,我正在使用SWRevealViewController lib处理该问题
导入库文件时,在.h && .m文件的支持文件下添加子文件夹(SWRevealViewController),它会引发两个错误,无法导入bridge和SWRevealViewController.h。
我如何解决
当我直接将文件移动到Supporting Files(删除子文件夹)时,SWRevealViewController.m自动添加到Build Phases-> Compile Sources,问题消失了
我在向应用程序添加“今日扩展”时遇到了这种错误。扩展的构建目标是使用与我的应用程序的构建目标相同的桥接头名称生成的。这导致了错误,因为扩展名看不到我的应用程序的桥接标题中列出的文件。
您唯一需要做的就是删除或更改扩展名的桥接头的名称,一切都很好。
希望这会有所帮助。
遇到类似的问题,上述任何解决方案都无法解决。我的项目使用CocoaPods。我注意到随着错误我收到以下消息警告:
Uncategorized: Target 'Pods' of project 'Pods' was rejected as an implicit dependency for 'Pods.framework' because its architectures 'arm64' didn't contain all required architectures 'armv7 arm64'
因此解决方案非常简单。对于Pods项目,将Build Active Architecture Only标记更改为No,并且原始错误消失了。
将“ 预编译桥接头”设置为“ 不解决我的问题”。