代码改变世界

[UIImage imageNamed:@"icon.png"] 加载图片的问题

2011-10-23 20:54  张智清  阅读(5645)  评论(0编辑  收藏  举报

[UIImage imageNamed:@"icon.png"]

用上面的方法加载图片有问题。该方法即可以从bundle中读取图片。

这种方法在application bundle的顶层文件夹寻找由供应的名字的图象 。
如果找到图片,装载到iPhone系统缓存图象。那意味图片是(理论上)放在内存里作为cache的。因此如果图片资源多了或大了,此方式容易引起发生内存警告从而导致自动退出的问题。

最好是通过直接读取文件路径[UIImage imageWithContentsOfFile]解决掉这个问题,应用示例:

NSString *path = [[NSBundle mainBundle] pathForResource:@”icon”
ofType:@”png”];
myImage = [UIImage imageWithContentsOfFile:path];


备注:imageNamed方法是不能通过路径进行加载图片的,如果要通过路径加载图片可以通过下面两个方法加载,一个是URL一个是FilePath。

NSImage *image = [[NSImage alloc]initWithContentsOfURL:(NSURL *)];
NSImage
*image = [[NSImage alloc]initWithContentsOfFile:(NSString *)];
用完记得  [image release];