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