更改图像时UIImageView的图像消失

时间:2011-05-08 06:42:46

标签: xcode ios xcode4

在代码中更改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]];

我在问我是否有“更好”的方式来做我正在做的事情,所以我将来不会遇到这些问题。

1 个答案:

答案 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];
}