【发布时间】:2011-06-10 21:33:40
【问题描述】:
我正在开发一个 Iphone 应用程序。我从一本关于声明如下属性的书中读到:
@property (nonatomic, retain) NSArray *listData;
那么在实现文件中,dealloc方法中,一定要写上这样的:
[listData release];
我想知道我是否声明为
@property NSArray *listData;
我必须释放它吗?它会为我节省 1 行代码。
【问题讨论】:
-
我会坚持保留+释放。我认为编译器可能会抱怨您没有在属性中指定保留/分配位;即使没有,大多数时候,
assign并不是你真正想要的。 -
是的,编译器发出警告,没有指定的东西,使用了assign。好的,所以对于财产,我将使用保留+释放。但是对于私有变量,我不会为它们创建属性。我需要释放私有变量吗? TIA
-
经过一番阅读,我现在明白了,cmiiw: 1. copy 用于 NSString * 2. 对于其他对象,使用 retain 3. 两者都必须在 dealloc 方法中释放 4. 对于原始数据类型, assign 使用,无需释放
标签: iphone properties retain