【问题标题】:ARC works for all objects?ARC适用于所有对象?
【发布时间】:2012-04-19 09:42:06
【问题描述】:

Book 中我找到了一个句子,告诉我ARC 只从Foundation 释放Object。这是真的?所以如果我有:

MySimpleClass *objectFromMySimpleClass = [MySimpleClass alloc] init];

我应该释放 objectFromMySimpleClass 吗?我怎样才能做到这一点?当我尝试时

[objectFromMySimpleClass release];

我在 Xcode 提示中看到非活动的“发布”,然后编译器说我不能这样做,因为 ARC。那到底是怎么回事?

还有其他的。当我使用 NSCoping 协议时,我也应该在使用 copy 时释放对象?

【问题讨论】:

  • 不就是NSObject类吗?如果是这样,您的类是从该类派生的,那么一切都很好。
  • 我只是跟随本书作者;) 所以当我从 NSObject 继承时,这非常酷。这很有道理,我没有想到。谢谢
  • 您确定链接到正确的书吗?那是在 ARC 发布之前写的,所以我怀疑它里面有没有提到 ARC。

标签: objective-c ios memory-management automatic-ref-counting


【解决方案1】:

MySimpleClass继承NSObject,因此它是一个Foundation Object,所以它可以被ARC管理。

【讨论】:

  • 除非类覆盖保留/释放。在这样的类中(例如撰写本文时的 NSWindow),我相信您必须使用非归零的弱变量。
【解决方案2】:

是的,ARC 适用于所有对象,您不能在运行时使用释放和保留。

【讨论】:

    猜你喜欢
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    相关资源
    最近更新 更多