objective-c - 我打算如何释放从类方法返回的数组?

标签 objective-c ios cocoa-touch memory-management memory-leaks

我有一段代码调用了一个返回 NSMutableArray 的方法,如下所示:

+(NSMutableArray *)method {

NSMutableArray *rgb = [[NSMutableArray alloc] initWithObjects:....., nil];

    return rgb;

}

每次调用它都会给我一个漏洞。将 [rgb release]; 放在 return 之后似乎不起作用。将它放在 return 之前会使我的应用程序崩溃。同时放入 autorelease 会使我的应用程序崩溃。有什么建议吗?

最佳答案

+(NSMutableArray *)method {
    NSMutableArray *rgb = [[NSMutableArray alloc] initWithObjects:....., nil];
    return [rgb autorelease];
}

或者:

+(NSMutableArray *)method {
    NSMutableArray *rgb = [NSMutableArray arrayWithObjects:....., nil];
    return rgb;
}

如果这仍然崩溃,那么问题很可能出在该方法之外,而不是内部。

关于objective-c - 我打算如何释放从类方法返回的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319253/

相关文章:

ios - 模仿 tableView :willBeginEditingRowAtIndexPath: on UIViewController 的 UITableViewControllers 行为

ios - 如何实现prepareForReuse()来防止褪色的单元格表现得很奇怪?

objective-c - 简单的字符串模式匹配

iphone - 执行将应用程序从 sleep 中唤醒的功能

objective-c - 无论设备方向如何,在 SplitView 中隐藏主视图 Controller

objective-c - 如果静态变量在上一行被初始化为 nil,为什么还要检查它是否为 nil?

ios - UITableViewCell textLabel 使文本垂直对齐在顶部 &estimatedHeightForRowAtIndexPathUITableViewCell 在选定的单元格上跳转

ios - 呈现另一个 UIViewController 后关闭 UIViewController

iphone - 应用程序文档目录的物理路径

ios - EXC_BAD_ACCESS 在 iOS 6 上,但在更改 CFDataRef 的字节时不是 5