iphone内存管理

Posted

技术标签:

【中文标题】iphone内存管理【英文标题】:iphone memory management 【发布时间】:2009-05-15 10:57:21 【问题描述】:

1.UIImageView *img1=[[UIImageView alloc]initwithImage:[UIImage imageNamed:@"1.png"]];

2.UIImageView *img2=[[UIImageView alloc]initwithImage:[UIImage imageNamed:@"2.png"]];

a) img1.image = [UIImage imageNamed:@"2.png"];

b) [img1 setImage:img2];

a 和 b 中哪种方式占用的内存最少?为什么?

如果我需要多次执行此操作,您建议采用哪种方式?

【问题讨论】:

你能提供更多关于你想要做什么的细节吗? 这非常接近于复制刚刚在这里提出的问题:***.com/questions/867945/memory-issue-in-iphone 【参考方案1】:

b) 因为您正在创建对现有对象的引用,但它们都将指向“2.png”。在 a) 您正在创建一个对象的新实例,该实例恰好指向同一个文件,但是它被分配为单独的内存空间。

【讨论】:

以上是关于iphone内存管理的主要内容,如果未能解决你的问题,请参考以下文章

iphone(object-c) 内存管理 有效的内存管理 后半部分

关于 iPhone 中的内存管理

在循环 iphone 中创建多个标签的内存管理

在 Objective-C (iphone) 中,如何管理“@protocol”引用的内存?

iPhone应用程序中C代码的内存管理

iPhone 应用程序中的 EXC_BAD_ACCESS - 内存管理问题