Xcode不会自动创建桥接头?

时间:2015-07-30 06:18:20

标签: ios objective-c xcode swift

我将一个Obj-C文件导入到我的swift项目中,Xcode自动提示我按预期创建一个桥接头文件。但是,我删除了两个文件(移动到垃圾箱)进行了一些更改,但是当我再次尝试导入Obj-C文件时,提示不再出现。是什么原因?我甚至在另一个项目中测试了这个相同的场景,似乎一旦我删除了Xcode的自动创建的桥接头,它不会再次带来提示。这是为什么?

8 个答案:

答案 0 :(得分:81)

问题的原因是,Xcode构建设置仍保留自动生成的桥接头文件的路径。由于项目目录中仍存在头文件(ProjectName-Bridging-Header.h),因此无法获得任何构建错误。

如何解决:

点击您的项目目标,转到构建设置标签(choose all instead of basic),搜索桥接标题。您可以看到Xcode生成的路径条目。选择它并单击删除按钮。

此外,请确保从Xcode项目目录中删除Xcode自动生成的桥接头文件(ProjectName-Bridging-Header.h)

现在,再次尝试导入Obj-C文件。您可以看到按预期创建桥接头文件的提示。

enter image description here

答案 1 :(得分:20)

档案 - >新文件 - >头文件

将其另存为YourApp-Bridging-Header

转到Build Settings,找到" Objective-C Bridging Header" (正如之前的人告诉的那样)并将其传递给您的桥接标题:YourApp / YourApp-Bridging-Header.h Where' YourApp /'是应用程序的名称。它可能包含空格,例如“你的应用程序”,

在xCode 7.3.1的情况下,它可以正常工作

答案 2 :(得分:7)

如上所述/建议,在xcode中创建桥接头的方法有所不同。在这里,我将为您提供创建Bridge的最佳和最简单的方法。

  1. Image1显示当前时间没有桥接。
  2. Image1

    1. Image2显示我复制了一个包含objective-c头文件的文件夹,复制弹出窗口后会出现在屏幕上。
    2. Image2

      1. Image3将显示弹出消息。但按完成按钮后,您会注意到仍然没有桥接。供参考,见图2。
      2. Image3

        1. 现在在image5& 6中,我只需拖放objective-c头文件,在执行此操作后,您将收到弹出消息。
        2. Image4

          1. 按完成按钮后,您会收到消息是否要配置Objective-C桥接标头?。按下Yes按钮后,您将获得桥头,您可以在图像5中看到。
          2. Image5

            如果您想将标题保留在一个组中,请使用新组并将文件拖放到该组中。

            Image6

            永远不要创建任何文件夹,否则你会因此而收到错误。

答案 3 :(得分:4)

查看项目设置 - >构建设置,向下滚动到name@google.co.uk部分,查看它是否有名为User-Defined的密钥以及是否有值。如果它在那里它可能认为你已经有一个,在这种情况下只需重新创建具有相同名称的文件。

答案 4 :(得分:3)

  1. 仅在项目中将桥文件提示一次。

  2. 如果意外删除文件,则必须构建新的桥文件。它是一样的。

  3. 转到File->New File->Header File,名称应为YourProjectName-Bridging-Header,否则无法识别。

答案 5 :(得分:1)

处理此问题大约一个小时后。 我发现真正的问题是文件夹!

从不创建/复制文件夹。

解决问题-

首先创建一个您喜欢的任何名称的组。 然后将Objective-C文件复制到该组(而不是文件夹)中。

那么肯定会提示您桥接头文件的创建。

答案 6 :(得分:0)

如果要手动配置,只需转到“构建设置”,然后将选择从“基本(默认)”或“自定义”更改为“全部”。

由于隐藏了空白字段,因此对于一般最终用户来说更容易处理,因此,如果您错过添加桥接标题的提示,则可能很难手动找到它。此外,搜索选项将不包括隐藏字段。

更改为全部,然后出现“ Swift编译器-常规”部分,其子设置为“ Objective-C桥接标题”

答案 7 :(得分:-3)

  1. 打开xcode项目
  2. 文件 - >新的 - >档案 - > 如果你想 .swift文件然后单击Swift文件 .h文件单击Header File .m文件目标文件等