@property (nonatomic,retain) NSString * name;
?- (void)setName:(NSString*)name
{
if(_name!=name){
[name retain]; ?// 把傳進(jìn)來的對象引用計(jì)數(shù)加一
[_name ?release]; // 把_name以前的對象release一次
_name = name; ? ?// 把name的對象地址給_name ?這時(shí)name 和_name共同對象的引用為2
}
}
@property (nonatomic ,assign) NSString *name
- (void)setName:(NSString*)name
{
_name = name; ? // name和_name 引用計(jì)數(shù)為1;
}
@property (nonatomic , copy) NSString * name
- (void)setName: (NSString*)name
{
if(_name!=name){
? ? ? [_name release]; ? //把_name以前的對象release一次
? ? ? _name = [name copy]; // 把name 的對象拷貝一份給_name ?這時(shí)_name 的引用計(jì)數(shù)為1 ? 而name的引用計(jì)數(shù)不變
}}