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

来源:互联网 发布:巴拉密 知乎 编辑:程序博客网 时间:2024/05/22 14:30
- (void)setName:(NSString *)name {
       判断原有对象和新对象是否是同一个对象,如果是同一个,就没有必要再重新赋值,否则会先release retain,就会变成野指针

    if (_name != name) {    

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

       [_name release];       

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

       _name = [name retain];   

     }

}

0 0