我最近看到这篇博客文章,其中讨论了两种实例变量释放。给大家总结一下:
第一种方法
- (void)dealloc {
[instanceVar release];
[super dealloc];
}
被认为使指针保持活动状态,直到方法返回。这可能导致未定义的行为。第二种方法
- (void)dealloc {
[instanceVar release], instanceVar = nil;
[super dealloc];
}
被认为对于生产代码更稳定,因为instaceVar设置为 nil。
好的。这是您一直在等待的问题:两种解决方案是否相同?或者表达式的逗号分隔是否使它们具有原子性?