iOS和内存管理

时间:2012-03-15 11:32:43

标签: ios memory-management copy retain

  

可能重复:
  Difference between retain and copy?

我正在学习iOS开发,我不太了解内存管理, 我已阅读苹果开发中心的高级内存管理编程指南指南,但仍有疑问。我想知道的最重要的问题是:在定义类的属性时,copyretain之间的区别是什么?谢谢!

1 个答案:

答案 0 :(得分:1)

对此有一千个答案!但是,要首先要理解的是,当您定义@property时,您正在向应用程序的编译器和retain / copy(以及您看到的所有其他内容)发出指令在括号中)是编译器关于如何遵循该指令的指令。

@property本质上意味着 - 请编译先生,给我一些访问方法(getter& setters)。

所以,retain& copy是编译器的指令,告诉它如何在这些getter / setter访问器内操作。

copy表示 - 当我说[myClass setMyProperty:propertyReference]时 - 我希望班级制作该物业的副本。一个完整的新属性实例。因此,课堂内的副本不会受到课外的外部诡计的影响。

retain表示 - 我希望该类记住我正在设置的属性的确切实例。根本不是新的实例。在这种情况下,当该实例发生更改时,您的类将知道该属性的最新状态。