iphone内存管理(四)

本文对比了UIImage两种初始化方式:imageNamed和initWithContentsOfFile的区别。详细解释了imageNamed如何利用缓存来提高加载效率,并针对不同场景提供了优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(4).如果图大且同一张图使用次数不多就避免使用imageNamed

UIImage有两种初始化方式

1.imageNamed

2.initWithContentsOfFile

imageNamed这种方式虽然很方便。但是创建的是autorelease对象。而且有一个特殊的地方就是它创建的图像会拷贝一份作为缓存。下次请求同一个图片时将会先查看缓存。如果缓存有将返回同一个地址,如果没有将会创建一个新的图像数据,然后拷贝一份进缓存。

所以如果图片很大而且并非多次使用,那么还是不要使用imageNamed。如果同一张图片使用多次。那么imageNamed就很爽了。相当省内存。

你可以使用[[ImageCache sharedImageCache] removeAllImagesInMemory];

将缓存中的图片全部清空.

initWithContentsOfFile这种就是传统的alloc方式.自己创建自己销毁

 image = [[UIImage alloc] initWithContentsOfFile:imageFile];

….

[image release];

区别讲得很清除了。至于使用哪一个。就要看实际情况了

 

待续......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值