iphone - 在 Objective-C 中发布 ivars

标签 iphone objective-c xcode ios

好的,看看这个:

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/

相关文章:

iphone - 自定义 UI slider ,缩略图大小问题

xcode - 如何获取 Xcode 8 的 clang 格式?

iphone - 以编程方式创建 Iphone 应用程序与 Storyboard

iphone - 使用 NSNumberFormatter 将 NSNumber 转换为 NSString

iphone - UIActivityIndi​​cator 没有动画

iphone - iOS 复制目录包括子目录

iphone - App Delegate 中的 Core Data 堆栈变量中的 Swift 语法不明确

iphone - 如何在IOS中以编程方式将PDF转换为PNG

iphone - 是否可以在移动应用程序(iOS、BB、Android)中添加捐赠按钮?

objective-c - 在 Swift 中使用工厂方法子类化 Objective-C 类,泛型不起作用