- (void)viewDidLoad {
[super viewDidLoad];
landscape.image = [UIImage imageNamed:@"tenerife1.png"];
}
我分配一个新UIImage
到的图像特性UIImageView
对象。 我不知道是否会导致内存泄漏?
- (void)viewDidLoad {
[super viewDidLoad];
landscape.image = [UIImage imageNamed:@"tenerife1.png"];
}
我分配一个新UIImage
到的图像特性UIImageView
对象。 我不知道是否会导致内存泄漏?
不,它不应该。 旧的图像应该当你设置新的,而“imageNamed”方法使用自动释放自动释放,所以你应该确定在那里。
哎考虑imageNamed有严重的内存问题,你在它的缓存失去控制 - 即:一旦你与你的形象做,你不能收回内存。 一个快速谷歌搜索将让你知道有多少人面临的问题与imageNamed
我在苹果iPhone技术讲座和小伙子给予介绍证实了相同的该死的东西 - 他建议使用imageWithContentsOfFile代替imageNamed
如果你只是有几个小图像,其精细否则使用imageWithContentsOfFile即使它有点慢-和实现自己的高速缓存逻辑-检查怎么做的这个伟大的链接在这里
这取决于如何image
属性被定义。 如果它被定义为retain
或,我想,即使是copy
,它应该是罚款。 你最终会尝试引用解除分配内存,如果它定义为崩溃您的程序assign
。
一般不会,但是这将取决于你如何定义landscape.image。 看帖子的上方。 小心使用了大量的这些:
[UIImage imageNamed:@"tenerife1.png"];
由于对这些图像填满记忆,没有得到释放的趋势。