大家都知道Object使用属性关键字来定义默认的set和get方法;但如果自己动手写个set方法,却不像C++,Java其他语言一样简单。归根于其内存管理的特点。
请看这个代码的区别:
-(void)setName:(NSStirng *)name
{
[_name release];
_name = [name retain];
}
另外一个写法是:
-(void)setName:(NSStirng *)name
{
[name retain];
[_name release];
_name = name ;
}
看上去一样,可是第一种写法在一种情况下会导致程序崩溃。