Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Cocoa 无法将图标添加到资源中_Cocoa_Xcode - Fatal编程技术网

Cocoa 无法将图标添加到资源中

Cocoa 无法将图标添加到资源中,cocoa,xcode,Cocoa,Xcode,已经输入并测试了一些示例代码,一切似乎都正常。只是我突然遇到了一个非常令人沮丧的问题,就是试图在项目中添加一个图标。已将图标文件(扩展名:icns)下载到我的桌面,并将其拖动到xCode中的“资源”组。然后,xCode出现了一个对话框,我在其中选中了两个选项:“将项目复制到目标组的文件夹(如果需要)”和“为任何添加的文件夹递归创建组”。但当我按下“添加”按钮时,会出现一个“警报”消息框。它说“无法将图标复制到…”。希望在这方面有知识的人能给我一些提示 此失败消息通常是由于尝试添加文件(位于项目文

已经输入并测试了一些示例代码,一切似乎都正常。只是我突然遇到了一个非常令人沮丧的问题,就是试图在项目中添加一个图标。已将图标文件(扩展名:icns)下载到我的桌面,并将其拖动到xCode中的“资源”组。然后,xCode出现了一个对话框,我在其中选中了两个选项:“将项目复制到目标组的文件夹(如果需要)”和“为任何添加的文件夹递归创建组”。但当我按下“添加”按钮时,会出现一个“警报”消息框。它说“无法将图标复制到…”。希望在这方面有知识的人能给我一些提示

此失败消息通常是由于尝试添加文件(位于项目文件夹之外)而导致的,此时项目文件夹中的目标位置中已存在同名文件

例如,假设您的项目文件夹是
~/Developer/CoolProject/
,Xcode项目位于
~/Developer/CoolProject/coolproj.xcodeproj
。如果您使用所述的选项集将图像
coolImage.png
从桌面拖动到Xcode,Xcode会将图像文件复制到
~/Developer/CoolProject/coolImage.png
。如果您随后重复相同的过程,它将第二次失败并显示该错误消息

我要做的是,在Finder中,检查项目文件夹内的icns文件是否已复制到项目文件夹中。如果项目文件夹中已存在icns文件的副本,且该icns文件未在Xcode的“组和文件”列表中列出,则可以通过将现有副本(位于项目文件夹内)拖动到Xcode项目窗口中以打开“添加文件”对话框来解决此问题。您可以保留与以前相同的选项,而这一次,Xcode不需要复制映像,因此可以避免错误

[更新]好的,根据上面的评论,您要做的是进入Finder并从项目中删除现有的.icns文件(换句话说,将其移动到垃圾箱)。然后,您可以(从项目文件夹外的位置)重新添加具有相同名称的图标,而不会出现错误。此外,在将来,请记住,如果您不想从项目文件夹中删除未使用的项目,则在使用“代码”>也可以移动到垃圾选项。 此外,您可能需要再次检查以确保相关文件作为活动目标的一部分包含在内。例如,如果将文件添加到项目中,但未选中该文件的“包含在活动目标中”复选框(如下图中的
ReadMe.rtfd
文件),则该文件不会在构建时复制到应用程序包中,也不会在运行时可用


(要将活动目标复选框列添加到“组和文件”列表中,请控制单击表列标题视图并从菜单中选择“目标成员身份”。

是否可以添加其他类型的资源?比如.png文件?你下载的文件可能有问题。我想我曾经设法将该文件添加到“资源”组中。但是,尽管示例程序在其他方面工作得很好,但根本没有使用新图标。所以我把它从“资源”组中删除了。现在我不能再添加它了……好吧,当你从Xcode中“删除”某些内容时,它通常会给你两个选择:
删除引用
同时移动到垃圾桶
。您碰巧选择了
Delete References
,它只是从Xcode项目中删除了对这些文件的引用,但将这些项目保留在您的项目文件夹中。这就是再次尝试添加项目失败的原因(请参阅下面的答案)。如果您希望应用程序或特定文件类型的图标显示,请确保将文件设置为Xcode中相应项目的图标。文档类型列表中有一个位置告诉Xcode哪个图标指向哪个文件类型,还有一个位置指示应用程序图标(我会在添加图标文件后进行设置)。没错,图标文件仍在项目文件夹中,而不会显示在资源组下。我已经按照您的建议完成了,将现有文件拖到资源组,此时将显示添加文件对话框。这次我按“添加”按钮没有问题。但问题是,示例程序仍然没有使用新图标。是否有其他提示?假设您希望新添加的图标文件成为应用程序图标,请转到目标的属性部分(在3.x中,选择组和文件列表下的目标,然后选择目标并获取信息,然后查看属性选项卡;在4.x中,选择项目的根级别并查看摘要选项卡)在图标文件点中输入文件名(或将文件拖动到该位置)。同样正如NSGod所说的,确保文件包含在复制包资源构建阶段。明白了+谢谢大家。没有你的评论和回答,这个问题肯定不容易解决。。。