【发布时间】:2020-09-24 19:57:23
【问题描述】:
我了解到,如果 @property 具有属性 retain,则应始终在 dealloc 方法中释放它。但是如果程序从不为属性分配内存,这意味着我们释放了一个未分配的对象,对吧?这是否意味着属性必须在init方法中分配?
【问题讨论】:
-
我目前在不使用 ARC 的情况下使用它,用于学习目的
标签: objective-c retain
我了解到,如果 @property 具有属性 retain,则应始终在 dealloc 方法中释放它。但是如果程序从不为属性分配内存,这意味着我们释放了一个未分配的对象,对吧?这是否意味着属性必须在init方法中分配?
【问题讨论】:
标签: objective-c retain
但是如果程序从不为属性分配内存,这意味着我们释放了一个未分配的对象,对吧?
错了。如果你在dealloc 中说[self->myVar release],那么myVar 要么被赋值,要么没有被赋值:
如果有,现在发布,这就是你想要的。
如果没有,则为nil,没有任何反应,也没有造成任何伤害,因为发给nil 的消息什么都不做。
【讨论】: