+ (UIImage *)imageNamed:(NSString *)name方法是在application bundle的顶层文件夹寻找名字的图象 , 如果找到图片, 系统缓存图象。图片内容被加载到系统内存中,使用时直接引用到系统内存。
所以当处理大量图片时,程序使用的内存会迅速上升导致内存警告并退出。
NSString *path = [[NSBundle mainbundle] pathForResource:@"Chen" ofType:@"png"];
当然,对于图片处理等相关程序,可以直接为UIImage写一个catagory,重载imageNamed方法,如下:
+ (UIImage *)imageNamed:(NSString *)name
{
return [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], name ] ];
}
@end
所以当处理大量图片时,程序使用的内存会迅速上升导致内存警告并退出。
NSString *path = [[NSBundle mainbundle] pathForResource:@"Chen" ofType:@"png"];
当然,对于图片处理等相关程序,可以直接为UIImage写一个catagory,重载imageNamed方法,如下:
+ (UIImage *)imageNamed:(NSString *)name
{
return [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], name ] ];
}
@end
本文介绍如何优化iOS应用中UIImage的内存使用,通过重载imageNamed方法来解决因大量图片加载而导致的内存警告问题。
696

被折叠的 条评论
为什么被折叠?



