0
我一直在努力从静态方法返回数组的最佳模式。返回一个NSArray没有泄漏?
在我的静态方法getList(在BIUtility类中),我分配一个NSArray返回。在返回行,我做的:
return [array autorelease];
在调用方法
然后,我分配一个这样的数组:
NSArray * list = [[[NSArray alloc] initWithArray:[BIUtility getList]] retain];
后来我释放使用名单:
[list release];
我认为这会导致内存泄漏,因为保留增加了太多的保留数。但是,如果我不保留,我会得到一个Bad_Exec,因为它已经释放了这个类。
我觉得我正在过度这个,并且必须有一个典型的模式。我一直在寻找所有的地方,我找不到“最佳做法”。
我感谢您的帮助。
我做这个计数的对象,但后来我得到的消息EXC_Bad_Instruction因为它正试图在已经发布的对象上进行发布。我不需要对保留的对象进行显式发布吗? – 2010-06-22 00:48:40
@Michael:你最初怎么声明数组? – 2010-06-22 00:58:07
像这样... NSArray * moveList = [[NSArray alloc] init]; 有时我必须使用NSMutableArray,因为我从SQL查询构建它,但是我返回一个NS数组。 – 2010-06-22 01:20:42