Objective-C:copy的用法解釋

    • 對於字符串類型的屬性變量(貌似數組也是),經常用的屬性聲明是:

@property (nonatomic, copy) NSString *name;

 

這條語句等價於

-(void) setName: (NSString *)theName

{

If ( theName != name) {

[name release];

name = [theName copy];

}

}

 

如果不用copy的話就相當於:

-(void) setName: (NSString *)theName

{

Name = theName;

}

導致結果是nametheName都是指向同一個對象。 那麼如果theName的值被修改,那麼name的值也會被修改。

所以使用copy來複制,其完成的功能是調用alloc方法創建一個新的字符串對象(initWithString:theName

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章