Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Xcode不自动创建桥接头?_Ios_Objective C_Swift_Xcode_Bridging Header - Fatal编程技术网

Ios Xcode不自动创建桥接头?

Ios Xcode不自动创建桥接头?,ios,objective-c,swift,xcode,bridging-header,Ios,Objective C,Swift,Xcode,Bridging Header,我在swift项目中导入了一个Obj-C文件,Xcode自动提示我按预期创建桥接头文件。但是,我删除了这两个文件(移动到垃圾箱)以进行一些更改,但是当我再次尝试导入Obj-C文件时,不会再出现提示。原因是什么?我甚至在另一个项目中测试了同样的场景,似乎一旦我删除了Xcode自动创建的桥接头,下次就不会再出现提示了。这是为什么?查看项目设置->构建设置,向下滚动到用户定义的部分,查看是否有名为SWIFT\u OBJC\u bridgeing\u HEADER的键,以及是否有值。如果它在那里,它可能

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

查看项目设置->构建设置,向下滚动到用户定义的
部分,查看是否有名为
SWIFT\u OBJC\u bridgeing\u HEADER的键,以及是否有值。如果它在那里,它可能认为您已经有了一个,在这种情况下,只需重新创建具有相同名称的文件

  • 桥文件在项目中仅提示一次

  • 如果您无意中删除了该文件,则必须构建一个新的桥接文件。都一样

  • 转到
    文件->新建文件->头文件
    ,名称应为
    您的项目名称桥接头
    ,否则无法识别


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

    如何解决:

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

    另外,确保从Xcode项目目录中删除Xcode自动生成的桥接头文件
    (ProjectName bridgeing header.h)

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


    如上所述/建议,在xcode中创建桥接头有不同的方法。在这里,我会给你最好和最简单的方法来创建桥梁

  • 图1显示在当前时间点不存在桥接
  • 图2显示我复制了一个包含objective-c头文件的文件夹,复制后屏幕上将出现一个弹出窗口
  • 图3将显示弹出消息。但按下finish按钮后,您会注意到仍然没有桥接器。有关参考信息,请参见图2
  • 现在在图5和图6中,我只需拖放objective-c头文件,完成后您将得到弹出消息
  • 按下finish(完成)按钮后,您会收到一条消息,如是否要配置Objective-C桥接头?。按下Yes(是)按钮后,您将获得桥头,如图5所示
  • 如果您想将标题保留在一个组中,请使用新建组并将文件拖放到该组中


    切勿创建任何文件夹,否则您将因此而出错。

    文件->新建文件->头文件

    将其另存为YourApp桥接标头

    然后转到构建设置,找到“Objective-C桥接头”(正如前面的伙计们所说的),并传递到桥接头:YourApp/YourApp bridge Header.h,其中“YourApp/”是应用程序的名称。它可以包含空格,例如“Your App/”

    在我的xCode 7.3.1中,它可以工作

  • 开放xcode项目
  • 文件->新建->文件-> 如果你愿意 .swift文件,然后单击swift文件 .h文件单击头文件 .m文件目标c文件等

  • 如果要手动配置,只需转到“生成设置”并将选择从“基本”(默认)更改为“全部”或“自定义”

    由于隐藏空字段是为了让普通最终用户更容易操作,因此如果错过添加桥接标头的提示,则手动查找可能会有困难。此外,搜索选项将不包括隐藏字段


    在处理此问题大约一小时后,更改为“全部”,Swift编译器-常规部分应显示“Objective-C桥接头”的子设置。 我发现真正的问题是文件夹

    从不创建/复制文件夹

    解决问题-

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


    然后肯定会提示您创建桥接头文件。

    否,该名称没有值。这里唯一的一个键是
    MTL\u ENABLE\u DEBUG\u INFO
    忘了提及,您是否单击了左上角的应用程序目标,而不是您的项目?应该是一个下拉列表,其中包含一个名为“项目-然后是目标”的部分,如果尚未准备就绪,只需单击目标即可。只需单击顶部的
    +
    并使用该键添加一个新条目,然后使用值
    APPNAME bridgeing Header.h
    ,然后在项目中创建该文件即可,Ramshads的答案可能更准确,只是意识到我用的项目作为例子是错误的,它是一个obj-c项目导入swift,所以关键可能是不对的。我试图将obj-c文件添加到项目中,但从未得到桥接头提示。我在构建设置中也没有该桥接选项:/n如果未找到Objective-c桥接头,请遵循此链接$(SRCROOT)/$(项目名称)/$(SWIFT\U模块名称)-桥接头。h复制粘贴“Objective-c桥接头”