库的基本内存策略

Posted on 2010-12-19 23:58  午后的小睡  阅读(458)  评论(0编辑  收藏  举报

Cocoa库中,水果的库开发者使用下面的规则撰写的库:

1.如果对象使用"-"初始化方法创建,那么对象仅仅对引用计数加1,也就是内部执行一次retain操作。

2.如果对象使用"+"初始化对象(相当于java或者C++的static方法),那么对象不但对引用计数加1,还自动执行autorelease操作。

3.如果某个对象的方法返回一个新对象,那么这个对象是autorelease的。

4.使用@property (retain) 声明的属性,将会在第一次赋值时,执行retain操作,赋值nil,会执行release。

5.UIApplication的消息循环,每一次都会创建一个Autorelease pool,所以在main thread中,一般情况下自己不需要再另创建Autorelease pool。

6.动态系统有的时候会对用户的object执行retain,所以程序员自己不要观测retainCount。

7.dalloc消息不见得会被立刻执行,这是动态系统决定。