Iphone 无法加载从设备上运行的捆绑包中的nib引用的映像

Iphone 无法加载从设备上运行的捆绑包中的nib引用的映像,iphone,objective-c,xcode,Iphone,Objective C,Xcode,SplitView[1290:307]无法加载从捆绑包中标识为“xx.co.mycompany.ipad.SplitView”的nib引用的“canary04.png”图像 我只有在设备上运行时才会收到错误。在模拟器中运行没有问题 我在interface builder中直接使用带有UIImageView的图像 编辑:我已经添加了一个不同的新图像到不同的笔尖,这没有问题 有人有什么想法吗?检查以确保您的项目中存在canary04.png,并且该项目未被删除。尝试清理项目,并确保info.plis

SplitView[1290:307]无法加载从捆绑包中标识为“xx.co.mycompany.ipad.SplitView”的nib引用的“canary04.png”图像

我只有在设备上运行时才会收到错误。在模拟器中运行没有问题

我在interface builder中直接使用带有UIImageView的图像

编辑:我已经添加了一个不同的新图像到不同的笔尖,这没有问题


有人有什么想法吗?

检查以确保您的项目中存在canary04.png,并且该项目未被删除。

尝试清理项目,并确保info.plist与xx.co.mycompany.ipad.SplitView匹配。然后检查是否可以在paint或photoshop中打开图像本身。如果图像是在photoshop中创建的,并且存在层,有时与.png有冲突,您是否将图像放在XCode(蓝色文件夹)中的引用文件夹中?如果是这样,您必须在图像路径中包含文件夹名称,例如“Images/canary04.png”

您是否将文件包含在目标中?右键单击Xcode中的目标,选择获取信息并选择顶部的“目标”组。确保检查了您的预期目标

祝你好运

编辑: 上面的文本应该已经读过了,右键单击xocde中的文件(canary04.png),然后选择获取信息


很抱歉输入错误。

iOS设备上的文件系统区分大小写,因此很可能是一个案例问题。(Mac OS X通常区分大小写,因此您在模拟器中没有看到此问题。)


因此,请检查您在代码中使用的大小写是否与文件名本身相同。

它可能不会添加到目标中,在XCode 4中,您可以这样做:

YourProject/en.lproj/YourViewController.xib: 

<textField borderStyle="roundedRect" background="canary04.png" id="19">
  • 在项目视图中,单击项目名称
  • 选择您的目标并选择“构建阶段”选项卡
  • 将图像文件拖到“复制捆绑资源”部分

这为我解决了问题。

我也有同样的问题,如果你的图像在子文件夹中,你需要在复制资源时选择“为子文件夹创建组”选项。

我的问题是,我将图像保存为.jpg,并将名称更改为.png(仍然是jpg格式)。它与模拟器一起工作

我在升级到Xcode 4.4.1时遇到了这个问题。我发现,尽管我已经删除了故事板中的图像(以及相应的按钮等),但在我的故事板文件(在tabBarItems字段中)中仍然提到了它们。我手动将它们注释掉(),Product->Clean,我再也没有得到错误了


我知道故事板中一定有虚假的引用,因为我之前删除了我的TabBar,当前的应用程序没有问题,只是控制台中有一些恼人的消息。

我也有同样的问题。设法

  • 干净的
  • 构建并运行

它与我一起工作

检查您的图像名称。如果它包含一些空格,则图像将在模拟器中运行时显示,但不会在设备中显示。运行时检查区分大小写的名称等。

将图像另存为PNG-24。这对我很有效

简单的方法 1只需在命令shell中执行以下操作,即可找到引用图像的字符串:

grep -R 'canary04.png' YourMainDirectoryFolder/*

2它将(例如)为您提供如下输出:

YourProject/en.lproj/YourViewController.xib: 

<textField borderStyle="roundedRect" background="canary04.png" id="19">
YourProject/en.lproj/YourViewController.xib:

3您现在知道了哪个nib文件和它是哪个元素。只需进入文件并删除引用。

我在Xcode 5中遇到了这个问题,而“组合高分辨率艺术品”似乎是罪魁祸首。我打开应用程序包,所有图像都是*.tiff,这导致图像“找不到”:S

修复

打开项目设置,并在顶部搜索“合并”。将该设置更改为否


由于某些原因,每个人都缺少这一基本修复。

您可以从故事板或nib中进行检查。将其作为源代码打开:

然后“查找”其中的图像名称,查看它是否存在,但在项目中已经无效,可能您已经删除或更改了它的名称,而现在它似乎无效


就我而言,这是因为Photoshop没有正确保存我的文件。在“文件保存”对话框中,我单击myfile.png试图覆盖该文件,它使用png扩展名保存该文件,但采用photoshop格式

在单击要覆盖的文件之前,我必须确保将文件格式实际更改为PNG,从而保存在实际的PNG文件中,以便iOS能够读取。有趣的是,interface builder将我的psd显示为png文件


更一般地说,请确保您的文件实际上是您认为的格式,并且是iOS所期望的格式。

在我的例子中,所有图像在>iOS 7而不是iOS 6.1的设备上都显示良好。 解决方案是iOS7区分大小写,但ios6.1不适合我。我的图片名为“myImageName”,也被命名为“myImageName”,这使得我的旧iPhone3无法显示这些图片。

所以重命名它们就解决了这个问题。

尝试了这里的每一个答案,但什么都没有,所以这里还有一个小问题,你的图标名不能有点(.),因为如果有点(Xcode允许你这么做!)而图标在情节提要中显示良好,它们不会加载到模拟器或设备中。

我在iOS 8中遇到了不同的问题。在我的例子中,问题是我为图像集选择了特定设备,然后选择了iPad。将此更改回Universal解决了此问题

此设置可以在images.xcsets文件中找到,在第三列中显示图像集的属性检查器

在这种情况下,即使已将图像添加到images.xcsets,图像也不会显示在故事板或NIB文件中。它们也不会显示在模拟器或设备中。

可能在之后
Could not load the "theImage" image referenced from a nib in the bundle with identifier "org.etc.etc"