imageNamed returns nil 在 iOS 7 但不是 iOS 8

imageNamed returns nil on iOS 7 but not iOS 8

我有不同时间间隔的图像。一个例子是“1.5d-4h.png”,也就是 4 小时到 1.5 天之间。我有每个间隔图像的常规 @2x 和 @3x 资产,我确保它们都是 PNG(不是 JPG),但由于某些原因,某些间隔图像无法通过 imageNamed 仅在 [=29] 上加载=] 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"

有什么建议吗?

似乎所有图片名称都带有“.”其中加载失败。

尝试转义“.”字符或将图像重命名为没有“。”他们名字中的字符。

给出一个简单的图像名称意味着没有点 (.) 并检查图像名称中的驼峰式大小写,因为模拟器不关心驼峰式大小写但设备关心。