首先谢谢在ios开发群里的大牛们给出的建议和总结
前者使用property的点操作符,也就相当于调用了对应的set method,和这句是一样的:[self setAbc: nil];
而后者没有通过property,直接访问了成员变量,调用了它的release方法。
对于set method来说,用synthesize来让系统帮我们生成的set方法和如下的类似:
- (void)setAbc: (id)newAbc
{
if(abc != newAbc){
[abc release];
abc = [newAbc retain]; //是retain还是copy取决于你property声明时的attributes
}
}
补充:
对于一个全局变量,例如view1,在使用完后只是[view1 release]的话,view1是没有被完全释放的,这时候view1的指针还有地址,是很危险的,
所以得[view1 release]后再view1 = nil
综合看起来的话,使用self.view1 = nil;是比较安全些view1是retain对象内部会release的
<未完>