Ara*_*and 1 memory-management objective-c
如果我有一个属性,如
@property (nonatomic, retain) NSArray *myArray;
Run Code Online (Sandbox Code Playgroud)
然后我按如下方式设置它
[self setMyArray:[[NSArray alloc]init]];
Run Code Online (Sandbox Code Playgroud)
我的保留次数是2吗?
当我在我的dealloc
方法中释放它时,仍然会有一个保留计数为1?
如果仅使用[[NSArray alloc] init]的返回设置属性,实际上有一个太多的引用.
您可以使用[self setMyArray:[NSArray array]]来避免这种情况,因为'array'方法返回一个自动释放的对象.
要么...
NSArray* newArray = [[NSArray alloc] init];
[self setMyArray:newArray];
[newArray release];
Run Code Online (Sandbox Code Playgroud)
...如果您不想使用自动释放的对象.
归档时间: |
|
查看次数: |
702 次 |
最近记录: |