如何解决iphone中imageWithContentsoffile函数的内存问题

时间:2012-11-02 13:10:13

标签: objective-c ios memory-management uibutton uiimage

UIButton添加UITableView时,我遇到内存问题。以下是我设置UIButton图像的代码:

UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:image forState:UIControlStateNormal];

但是,当我使用imageName:方法而非imageWithContentsOfFile:方法时,它的效果非常好。有没有人能解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

imageWithContentsOfFile: vs imageNamed:

据我所知,

imageNamed 将图像加载到特殊的系统缓存中,然后使用该图像路径的未来调用将返回缓存中的图像,而不是从磁盘重新加载。

imageWithContentsOfFile 只是将图像加载到您指定的路径,但不进行缓存。对同一图像多次调用imageWithContentsOfFile将导致内存中有多个副本。

关于内存泄漏我不确定在编程中使用大量图像时哪一个更好用...