我将一个Obj-C文件导入了我的Swift项目中,Xcode自动提示我创建桥接头文件,这是预期的。然而,我删除了这两个文件(移到回收站)以做一些更改,但是当我尝试再次导入Obj-C文件时,该提示不再出现。原因是什么?我甚至在另一个项目中测试了相同的情况,似乎一旦我删除了Xcode自动创建的桥接头文件,它就不会再次弹出提示了。为什么会这样呢?
我将一个Obj-C文件导入了我的Swift项目中,Xcode自动提示我创建桥接头文件,这是预期的。然而,我删除了这两个文件(移到回收站)以做一些更改,但是当我尝试再次导入Obj-C文件时,该提示不再出现。原因是什么?我甚至在另一个项目中测试了相同的情况,似乎一旦我删除了Xcode自动创建的桥接头文件,它就不会再次弹出提示了。为什么会这样呢?
(ProjectName-Bridging-Header.h)
仍存在于项目目录中,因此不会出现任何构建错误。
解决方法:
点击项目目标,转到构建设置选项卡(选择全部而不是基本),搜索桥接标头。您可以看到Xcode生成的路径输入。选择它,然后单击删除按钮。(ProjectName-Bridging-Header.h)
。文件 -> 新建文件 -> 头文件
将其保存为 YourApp-Bridging-Header
然后进入 Build Settings,在“Objective-C Bridging Header”中找到之前的人告诉你的,将路径设置为你的桥接头文件: YourApp/YourApp-Bridging-Header.h 其中 'YourApp/' 是应用程序的名称。它可以包含空格,例如 'Your App/'。
在我的情况下,在xCode 7.3.1中它可以工作
在Xcode中创建桥接头文件的方法有多种,如上所述/建议。这里我将为您提供创建桥接的最佳和最简单的方法。
如果您想将标题保留在同一组中,请使用新建组并将文件拖放到该组中。
不要创建任何文件夹,否则会因此出现错误。
User-Defined
部分,查看是否存在一个名为 SWIFT_OBJC_BRIDGING_HEADER
的键以及其是否有值。如果有,则可能认为您已经有一个文件了,在这种情况下,只需重新创建具有相同名称的文件即可。MTL_ENABLE_DEBUG_INFO
。 - John DurandAPPNAME-Bridging-Header.h
,然后在您的项目中创建该文件,希望可以使用它。 - Fonix在一个项目中,桥接文件只会提示一次。
如果你不小心删除了该文件,则必须构建新的桥接文件。这是相同的。
转到 文件->新建文件->头文件
,文件名应为 YourProjectName-Bridging-Header
,否则无法识别。
处理了大约一个小时后,我发现真正的问题是文件夹!
永远不要创建/复制文件夹。
为了解决这个问题 -
首先创建一个您喜欢的任何名称的组。 然后将Objective-C文件复制到该组中(而不是文件夹)。
然后,您肯定会提示创建Bridging Header文件。
在一个项目中,桥接文件只会提示一次。
如果您不小心删除了该文件,则必须构建一个新的桥接文件。这是相同的。
转到“文件”->“新建文件”->“头文件”,名称应为YourProjectName-Bridging-Header,否则无法识别。
如果您正在使用React Native,最后需要添加这些行:
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import <React/RCTBridgeModule.h>
#import <React/RCTViewManager.h>
#import <React/RCTLog.h>
#import <Foundation/Foundation.h>
#import <React/RCTEventEmitter.h>
#import <React/RCTConvert.h>
@interface RCT_EXTERN_MODULE(core, NSObject)
@end