Xcode 6 Beta 6 CUICatalog: 提供的资源名称无效:(null),或比例因子无效:2.000000。

14

我正在遇到以下错误:

CUICatalog: Invalid asset name supplied: (null), or invalid scale factor: 2.000000
Could not load the "(null)" image referenced from a nib in the bundle with identifier "com.example.project"

自从我在Interface Builder中为选项卡栏项目设置了“所选图像”以来,我一直收到这些错误:

enter image description here

我已将文件添加到Xcode中:

enter image description here

该设置已写入故事板文件中:

<tabBarItem key="tabBarItem" title="..." image="config.png" selectedImage="config_filled.png" id="5Wh-7m-Y4H"/>

我正在使用Xcode 6 Beta 6。

我知道关于“错误:CUICatalog:提供了无效的资源名称:(null),或无效比例因子:2.000000”,但这对我没有帮助。

是什么导致资源名称为空?我已重新输入图像名称,也尝试过清理和重建,但错误仍然存在(并且没有图像出现)。


我遇到了完全相同的错误,没有提到无效的比例因子。我正在使用包含所有图像尺寸的资源目录。这似乎是一个明显的错误。我的最终解决方案是简单地排除所选的图像,因为我认为这不值得进一步追究。 - Owen Godfrey
1
答案在那里。 - Gabriel Cartier
@GabrielCartier 请仔细阅读我的问题,我在提问时已经检查过了。 - idmean
7个回答

29

在 Xcode 6.1 中,属性检查器中的某些属性无法正常工作,但您可以使用 "用户定义的运行时属性" 来解决此问题。

我是这样解决的: 输入图像描述


2
我已尝试过这个解决方案,而且在我的特定情况下,它确实有效。谢谢,@mistyhua。 - enreas
完美运行。我的图片在一个.xcassets文件中。 - Daniel
刚刚注意到错误信息仍然出现,但是图片现在可见了。我最终通过编程解决了这个问题。 - Daniel
1
不要在“属性检查器”中设置“选定图像”。@Danniel - Mornirch

18

我最终在AppDelegate中使用了这个糟糕的代码:

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
((UITabBarItem *)tabBarController.tabBar.items[0]).selectedImage = [UIImage imageNamed:@"light_filled"];
((UITabBarItem *)tabBarController.tabBar.items[1]).selectedImage = [UIImage imageNamed:@"umbrella_filled"];
((UITabBarItem *)tabBarController.tabBar.items[2]).selectedImage = [UIImage imageNamed:@"config_filled"];

希望苹果公司能够尽快修复这个漏洞。


@RudolfAdamkovic 是的,我知道。奇怪的是苹果没有注意到/修复这个漏洞。 - idmean
整个东西几乎不能工作。就在我实施了你的解决方法后,Swift的代码完成功能停止工作了。无话可说。 - Rudolf Adamkovič
1
我找到的唯一解决方案是在代码中设置图像,并且对于每个tabbaritem,删除storyboard中的selectedImage和Image属性。 - Fraggle

5
在 Interface Builder 中,将选中图像留空的选项卡栏元素应该会移除警告信息。

但是我仍然没有选择的图像? - idmean
2
这里选择的图像不适用于我的应用程序。唯一使其工作的方法是使用“用户定义的运行时属性”,就像上面所述的那样。 - NEO
请在上方发表评论。这个答案本身是相当无用的。 - idmean
很抱歉,您的声望值不够,无法进行此操作。 :( - NEO

1
对我来说,解决方案是检查你在故事板中的所有UIImageViews,有时如果你删除了UIImageview并使用Cmd + z恢复它们,UIImageView中的图像会变为"未知"。我认为这是一个错误,因为你仍然可以在故事板中看到图像。
解决方案:在故事板中再次选择UIImageView中的图像。

谢谢!当我检查UIImageView时,它显示为未知,现在我已经删除了,一切正常。 - Antony Raphel

0
我找到的解决方案是将Images.xcassets中tabBar图像的条目设置为Render As:Template Image 这解决了错误和警告。
感谢另一个问题中的this answer

那听起来很合理。我会尝试一下。 - idmean

-1
我的解决办法是因为代码补全不足,我使用了这个快捷方法。
    let secondItem = tabBarController.tabBar.items![1] as UITabBarItem
    secondItem.selectedImage = UIImage(named: "home-selected")

这段代码被放置在AppDelegate的didFinishLaunchingWithOptions方法中。


-2

尝试不加上“.png”扩展名,这可能会解决过去某些IB图像加载问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接