在代码中更改UIImageView上的图像时,图像消失。这只发生在iPod Touch设备上,而不是iPhone模拟器上。
在我的包中,我有一个名为SomeImage.PNG
NSString *path = [[NSBundle mainBundle] pathForResource:@"SomeImage" ofType:@"png"];
[self.background setImage:[[UIImage alloc] initWithContentsOfFile:path]];
我必须重申,这在iPhone模拟器上运行良好,但在iPod Touch设备上没有。
请注意,图像文件具有大写文件扩展名,但在我的代码中,它以小写形式声明。这就是问题。因此,要解决此问题,请将代码更改为:
NSString *path = [[NSBundle mainBundle] pathForResource:@"SomeImage" ofType:@"PNG"];
[self.background setImage:[[UIImage alloc] initWithContentsOfFile:path]];
我在问我是否有“更好”的方式来做我正在做的事情,所以我将来不会遇到这些问题。
答案 0 :(得分:1)
不是真的。不幸的是,iOS文件系统区分大小写。
像这样......?
NSString *filename = @"SomeImage";
NSString *extension = @"png";
UIImage *img = nil;
NSString *path = nil;
path = [[NSBundle mainBundle] pathForResource:filename ofType:[extension lowercaseString]];
img = [[UIImage alloc] initWithContentsOfFile:path];
if (img == nil) {
path = [[NSBundle mainBundle] pathForResource:filename ofType:[extension uppercaseString]];
img = [[UIImage alloc] initWithContentsOfFile:path];
}