我了解到,如果@property具有属性retain,则应始终在dealloc方法中释放它。但是,如果程序从不为该属性分配内存,则意味着我们释放了一个未分配的对象,对吗?这是否意味着必须在init方法中分配属性 ?
@property
retain
dealloc
init
但是,如果程序从不为该属性分配内存,则意味着我们释放了一个未分配的对象,对吗?
错了。如果您在[self->myVar release]中说dealloc,则为myVar分配了一个值,或者没有分配值:
[self->myVar release]
myVar
如果有的话,现在就发布了,这就是您想要的。
如果没有,则为nil,什么也没有发生,也没有造成危害,因为发给nil的消息无济于事。
nil