assign/retain/copy

2017-05-12  本文已影响8人  Jin丶hy

Objective-C中有两类对象,一类是结构体(或者基本数据类型也算),另一类是NSObject对象。

assign:###

简单赋值给新对象,不增加引用计数。也就是说,

- (void) setAssignProperty:(id)newValue
{
    self->assignProperty = newValue;
}

一般用在:

**基本数据类型\int \float \double\CGRect \真假(BOOL)\结构体**

retain:###

释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1。也就是说,

-(void)setRetainProperty:(id)newValue
{
    if (retainProperty != newvalue)
    {
        [retainProperty release];
        retainProperty = [newValue retain];
    }
}

一般用在:

一般对象如:NSNumber(除了NSTring 对象外)

copy:###

释放旧对象,建立一个索引计数为1的对象。也就是说,

-(void)setCopyProperty:(id)newValue
{
    if (copyProperty != newvalue)
    {
        [copyProperty release];
        copyProperty = [newValue copy];
    }
}

一般用在:

NSString、NSMutableString、block
上一篇下一篇

猜你喜欢

热点阅读