【问题标题】:Do we always have to allocate a @property with the retain attribute?我们是否总是必须分配一个带有保留属性的@property?
【发布时间】:2020-09-24 19:57:23
【问题描述】:

我了解到,如果 @property 具有属性 retain,则应始终在 dealloc 方法中释放它。但是如果程序从不为属性分配内存,这意味着我们释放了一个未分配的对象,对吧?这是否意味着属性必须init方法中分配?

【问题讨论】:

  • 我目前在不使用 ARC 的情况下使用它,用于学习目的

标签: objective-c retain


【解决方案1】:

但是如果程序从不为属性分配内存,这意味着我们释放了一个未分配的对象,对吧?

错了。如果你在dealloc 中说[self->myVar release],那么myVar 要么被赋值,要么没有被赋值:

  • 如果有,现在发布,这就是你想要的。

  • 如果没有,则为nil,没有任何反应,也没有造成任何伤害,因为发给nil 的消息什么都不做。

【讨论】:

    猜你喜欢
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    相关资源
    最近更新 更多