- 對於字符串類型的屬性變量(貌似數組也是),經常用的屬性聲明是:
@property (nonatomic, copy) NSString *name;
這條語句等價於
-(void) setName: (NSString *)theName
{
If ( theName != name) {
[name release];
name = [theName copy];
}
}
如果不用copy的話就相當於:
-(void) setName: (NSString *)theName
{
Name = theName;
}
導致結果是name和theName都是指向同一個對象。 那麼如果theName的值被修改,那麼name的值也會被修改。
所以使用copy來複制,其完成的功能是調用alloc方法創建一個新的字符串對象(initWithString:theName)