在这种情况下如何正确写作:
我有一些方法,返回 NSMutableArray*。因为方法不是以 init、new 或 alloc 开始的,所以在苹果内存管理指南中如何编写,我返回 autorealese 对象。
-(NSMutableArray*)someMethod {
NSMutableArray *array = [NSMutableArray alloc] init] autorealese];
//Some code here
return array;
}
我还有另一种方法,称为这个:
-(NSMutableArray*)method1 {
NSMutableArray *array = nil;
if(condition){
array = [self someMethod];
}
return array;
}
-(NSMutableArray*)method2 {
NSMutableArray *array = nil;
array = [self method1];
}
代码可以工作。但是XCode分析工具说在方法2中我得到了计数为0的对象。那么,如何写好这段代码呢?
最佳答案
您的代码没有任何问题,只是 method2
将返回自动释放的数组。因此,无论调用此方法,都应该保留返回值。
关于iphone - 新手关于iOS内存管理的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6952703/