iOS 图片初始化imageNamed和imageWithCon
1、[UIImage imageNamed:]
直接通过图片名称来创建图片对象
2、 [UIImage imageWithContentsOfFile:]
根据路径来创建图片对象
- (void)showimage{
//a
//self.imageView = [UIImage imageNamed:@"pic1"];
//b
//NSString *path = [[NSBundle mainBundle] pathForResource:@"pic1" ofType:@"png"];
self.imageView = [UIImage imageWithContentsOfFile:path];
}
- (void)dismissimage{
self.imageView = nil;
}
启动工程后,点击使用showimage使用a方法进行创建后,内存涨了5MB,点击dismissimage设置为nil,内存未下降。
重新启动工程后,点击使用showimage使用b方法进行创建后,内存涨了3MB,点击dismissimage设置为nil,内存下降3M,基本不占用内存了。
总结:
从上面的例子中可以看出来[UIImage imageNamed:]方法创建的图片对象会一直存在内存中,适合有相同的图片需要被再次加载到屏幕上时,由于内存中已经加载过此图片,所以无需再对图片进行解码等操作,所以再次加载非常迅速。适合常用比较小的图片,比如底部导航上自定义的按钮图标等。但采用Assets.xcassets来存放图片的情况,只能使用此方法创建。
而 [UIImage imageWithContentsOfFile:],虽然每次都重新加载,但所占内存不大,使用后完也及时释放。对于比较大又不常用的启动图比较好,使用该方法内存会得到及时的释放,即用即创建,不用就销毁。