CUICatalog:无法找到名称:someimage@2x~ipad.png比例因子:2设备成语:1设备子类型:568

时间:2014-10-08 05:06:07

标签: ios iphone image xcode6 iphone-6

我创建了完全适用于xcode 5的应用程序。 但是当我使用iphone 6模拟器在xcode 6上运行它时,它给了我一个错误:

  

CUICatalog:无法找到名称的再现:someImage@2x~ipad.png比例因子:2设备成语:1设备子类型:568

3 个答案:

答案 0 :(得分:4)

我知道这可能不是您想要的答案,但我遇到了完全相同的问题,只需重命名图像就可以解决问题。

换句话说,我将原始文件复制到同一目录中的另一个文件中,并使用不同的名称。

然后我将这个新文件添加到Xcode项目并删除了第一个。

我更改了代码以反映新的图片名称:

   // Asset Catalog problem loading this:
   //  [imgBackground setImage:[UIImage imageNamed:@"Home_BG@5g.png"]];
   [imgBackground setImage:[UIImage imageNamed:@"Home_BG-568h"]];

我略微改变了之前开发者的命名惯例,与Home_BG-568h@2x.png一起使用。

希望这有助于某人。

答案 1 :(得分:2)

我发现了一种通过规避Apple的命名约定解释来加载图像的方法。不要使用[UIImage imageNamed:],而是将图片作为二进制文件加载到NSData中,然后使用该数据初始化UIImage,如下所示:

NSData* imageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon@57x57" ofType:@"png"]];
UIImage* icon = [UIImage imageWithData:imageData];

但请注意,此方法没有缓存,多次调用它会每次加载一个新图像。如果你想要缓存,你必须自己实现这个逻辑。

图像的比例也可能不正确。如果是视网膜刻度(@ 2x)图像,您可以调整加载图像的比例,如下所示:

icon = [UIImage imageWithCGImage:icon.CGImage scale:2.f orientation:UIImageOrientationUp];

答案 2 :(得分:0)

我在我的通用应用程序项目中遇到了同样的问题。

解决方案也是重命名所有"通用图像"用于两个或仅一个设备(iPhone和iPad || iPhone || iPad)。例如。 someimage@2x.png因为没有对应物存在也不需要......