好的,看看这个:
Apple docs: Declared Properties
如果你向下滚动到解除分配,它会显示:
“通常在 dealloc 方法中,您应该直接释放对象实例变量(而不是调用 set 访问器并传递 nil 作为参数),如此例所示:”
- (void)dealloc {
[property release];
[super dealloc];
}
“但是,如果您使用现代运行时并合成实例变量,则无法直接访问实例变量,因此您必须调用访问器方法:”
- (void)dealloc {
[self setProperty:nil];
[super dealloc];
}
现在,我必须拥有至少 15 到 20 本有关 iOS 开发的书籍。我不能说我在这些书中见过任何代码建议人们做任何事情,除了:
[someproperty release];
是否有令人信服的理由来编辑一堆完美运行的代码文件以采用 Apple 的建议?以后的工作怎么样?或者,它们几乎是等价的吗?
最佳答案
Apple 的文档似乎仅在您打开默认合成时才适用。如果您将其关闭(这似乎是默认情况),则需要 @synthesize,它使您可以直接访问变量。
就我个人而言,我这样做:
@synthesize someProperty=_someProperty;
这样我就可以这样做:
- (void)dealloc {
[_someProperty release];
[super dealloc];
}
参见Jeff LaMarche's blog了解更多。
关于iphone - 在 Objective-C 中发布 ivars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5827177/