我是怎么意味着释放从类方法返回的数组?

And*_*rew 2 cocoa-touch memory-leaks memory-management objective-c ios

我有一段代码调用方法返回NSMutableArray如下:

+(NSMutableArray *)method {

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

    return rgb;

}
Run Code Online (Sandbox Code Playgroud)

它每次被叫时都会泄漏.放下[rgb release];return似乎不起作用.放在它之前return使我的应用程序崩溃.同时加入autorelease使我的应用程序崩溃.建议?

Reg*_*ent 7

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

或者:

+(NSMutableArray *)method {
    NSMutableArray *rgb = [NSMutableArray arrayWithObjects:....., nil];
    return rgb;
}
Run Code Online (Sandbox Code Playgroud)

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