首页 > 代码库 > 有一个NSStirng类型,retain方式声明的name属性的setter方法内部每一行代码的作用?

有一个NSStirng类型,retain方式声明的name属性的setter方法内部每一行代码的作用?

- (void)setName:(NSString *)name {
       判断原有对象和新对象是否是同一个对象,如果是同一个,就没有必要再重新赋值,否则会先release retain,就会变成野指针

    if (_name != name) {    

       释放保有之前对象的所有权        

       [_name release];       

       让实例变量 _name保有新的对象的所有权      

       _name = [name retain];   

     }

}