首页 > 代码库 > 手工引用计数中规则

手工引用计数中规则

使用设值方法为属性赋值时 assign、retain、copy三个特性的实现

self.property = newValue;

assign的特性会是这样:

    property = newValue;

retain特性会是这样

    if (property!=0) {

        [property release];

        property = [newValue retain];

    }

   copy的特性会是这样

    if (property!=0) {

        [property release];

        property = [newValue copy];

    }

 果要保持一个对象不被销毁可以使用retain,使用完对象后需要用release进行释放。

对象发release消息后并不会释放这个对象,只有当对象的引用计数为0后才会被销毁。然后系统系统会给这个对象发送dealloc消息释放内存。

果方法中不需要使用一个对象,但这个对象确实一个返回值可以给这个对象发送autorelease消息用以标记这个对象延迟释放,autorelease不会影响对象的引用计数。

 

手工引用计数中规则