[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];