我有以下的方法,它是通過調用的(使用NSThread)一個新的線程產生:保留在NSThread創建的對象
- (void) updateFMLs {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSArray *temp = [[NSArray alloc] initWithArray:someArrayFromAnotherProcess];
[self performSelectorOnMainThread:@selector(doneLoading:) withObject:temp waitUntilDone:NO];
[pool release];
}
我doneLoading:
方法是這樣的:
- (void) doneLoading:(NSArray *)obj {
myArray = [[NSArray alloc] initWithArray:obj copyItems:NO];
}
myArray
的內容變爲無效。我如何保留myArray
的內容,以便稍後在我的應用程序中使用它們?
P.S.在類頭文件中定義了myArray
。
什麼意思是「變得無效」。他們是否被釋放? – 2009-08-04 02:57:50
順便說一句,你泄漏的「溫度」陣列。你分配一個數組(+1保留計數),但你永遠不會釋放它。 – 2009-08-04 03:02:44
是的,他們似乎成爲釋放,因爲我通過doneLoading進展...即使沒有任何doneLoading,除了上面顯示的行,以任何方式改變myArray – zpesk 2009-08-04 03:05:43