所以当图片比较大时,程序使用的内存会迅速上升导致内存警告并退出。
特别在使用Interface Builder建立界面时,如果直接拖动UIImageView 并设置image的图片名称。InterfaceBuilder 正是通过UIImage 类的imageName方法加载图片。图片被缓存,导致内存使用较大。且无法释放,即使release掉 UIImageView也无济于事。
所以推荐使用+ (UIImage *)imageWithContentsOfFile:(NSString *)path方法加载图片。
也可以重载 imageNamed方法。
@implementation UIImage(imageNamed_Hack)Note: With this override you will not have any cache loading UIImages, if you need this,you will have to implement your own cache.
+ (UIImage *)imageNamed:(NSString *)name {
return [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@",
[[NSBundle mainBundle] bundlePath], name ] ];
}
@end
Tip: If your applications use much image processing, consider to use de PhotoshopFramework for iPhone. Check here: http://sourceforge.net/projects/photoshopframew/
0 评论:
发表评论