OGeek|极客世界-中国程序员成长平台

标题: iphone - 在 Objective-C 中发布 ivars [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 07:24
标题: iphone - 在 Objective-C 中发布 ivars

好的,看看这个:

Apple docs: Declared Properties

如果你向下滚动到 dealloc,它会显示:

“通常在 dealloc 方法中,您应该直接释放对象实例变量(而不是调用 set 访问器并将 nil 作为参数传递),如下例所示:”

- (void)dealloc {
    [property release];
    [super dealloc];
}

"但是如果你使用现代运行时合成实例变量,则不能直接访问实例变量,所以必须调用访问器方法:"

- (void)dealloc {
    [self setProperty:nil];
    [super dealloc];
}

现在,我必须拥有至少 15 到 20 本关于 iOS 开发的书籍。我不能说我曾经在这些书中看到过任何代码建议做除以下之外的任何事情:

[someproperty release];

是否有令人信服的理由编辑一堆运行良好的代码文件以采纳 Apple 的建议?以后的工作怎么样?或者,它们是否相当?



Best Answer-推荐答案


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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4