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