【发布时间】:2011-04-09 05:23:54
【问题描述】:
我查看了工具,发现 alloc 将保留计数增加了 1。到目前为止,一切都清楚了。但是将课程分配给我的财产也将保留计数增加到 2。
self.myProperty = [[MyClass alloc] init]
对比
MyClass *myCreatedVariable = [[MyClass alloc] init];
self.myProperty = myCreatedVariable
为了将保留计数减少到零,我在调用后立即释放了 myCreatedVariable。 myProperty 实例变量在 dealloc 方法中释放。仅在 dealloc 方法中释放属性是否正确?
现在我的问题是:
对属性的分配和分配是否总是创建 2 的保留计数?所以不要使用
self.myProperty = [[MyClass alloc] init]
因为保留计数永远不会为零?还是只有在我分配班级时才会出现这种情况?
干杯
【问题讨论】:
-
您永远不会观察到保留计数为零的对象,因为一旦保留计数降至零,该对象就会被释放。
标签: iphone objective-c cocoa-touch xcode memory-management