我们是否总是需要使用keep属性分配@property?

问题描述

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

解决方法

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

错了。如果您在[self->myVar release]中说dealloc,则为myVar分配了一个值,或者没有分配值:

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

  • 如果没有,则为nil,什么也没有发生,也没有造成危害,因为发给nil的消息无济于事。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...