iphone - 新手关于iOS内存管理的问题

标签 iphone ios memory-management

在这种情况下如何正确写作:

我有一些方法,返回 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/

相关文章:

iphone - UITableView 单元格背景颜色

ios - AVFoundation,如何关闭captureStillImageAsynchronouslyFromConnection时的快门声?

iphone - 获取照片 Assets 库 Assets 表示大小为零

ios - 如何将保存的图像从 Parse.com 提取到我的应用程序中

ios - 使用两个委托(delegate)

c# - 将列表克隆到现有列表中、最小化内存重新分配的最有效方法?

android - 一个典型的 Android 应用程序使用多少内存是合理的

iphone - 如何将此类数据显示到 UITableview

ios - UITableViewCell 中的 ScrollView 不会保存位置

释放双指针的正确方法