imageNamed在iOS 7上返回nil但在iOS 8上不返回nil

时间:2015-07-16 18:56:32

标签: ios objective-c iphone ios7 ios8

我有各种时间间隔的图像。一个例子是" 1.5d-4h.png",也就是4小时到1.5天之间。我为每个区间图像定期提供@ 2x和@ 3x资源,并确保它们是所有PNG(不是JPG)但由于某种原因,某些区间图像无法仅通过imageNamed加载在iOS 7上.iOS 8设备正确加载所有可能的间隔图像。

从iOS 7的某些进一步测试看,如果您完全将该名称限定为imageNamed,则会成功使用所有这些图像,例如。

(lldb) po [UIImage imageNamed:@"1.5d-4h.png"]
<UIImage: 0x7ec390>

(lldb) po [UIImage imageNamed:@"1.5d-4h"]
 nil

在iOS 7和8上成功加载的图像示例:

(lldb) po [UIImage imageNamed:@"10-9d"]
<UIImage: 0x10cc290>

这是一整套时间间隔:

@"4h-0min"
@"1.5d-4h"   // fails
@"4.5-1.5d"  // fails
@"5.5-4.5d"  // fails
@"7-5.5d"    // fails
@"9-7d"
@"10-9d"

有什么建议吗?

2 个答案:

答案 0 :(得分:6)

似乎所有图片名称都带有&#39;。&#39;在他们无法加载。

尝试逃避&#39;。&#39;字符或重命名图像没有&#39;。&#39;他们名字中的人物。

答案 1 :(得分:0)

给出一个简单的图像名称意味着没有点(。)以及检查图像名称中的驼峰情况,因为模拟器不关心camelCase而是关心设备。