基本原则
先整理一下我们已经学到的事情:
- 如果是
init
、new
、copy
这些method产生出来的物件,用完就该调用release
。 - 如果是其他一般method产生出来的实例,就会返回auto-release实例、或是单例(Singleton)(稍晚会解释什么是Singleton),就不需要另外调用
release
。
而调用retain 与release 的时机包括:
- 如果是在一般程式码中用了某个实例,用完就要release 或是auto-release。
- 如果是要将某个Objective-C 实例,变成是另外一个实例的成员变数,就要将实例retain 起来。 但是delegate 实例不该retain,我们稍晚会讨论什么是delegate。
- 在一个实例被释放的时候,要同时释放自己的成员变量,也就是要在实现dealloc 的时候,释放自己的成员变量。
要将某个实例设为另外一个实例的成员变量,需要写一组getter/setter。我们接下来要讨论怎么写getter/setter。