我在Objective-C中的內存管理有問題。假設我有一個方法分配一個對象並將該對象的引用存儲爲該類的成員。如果我第二次運行相同的函數,我需要在創建一個新對象來替換它之前釋放這個第一個對象。假設函數的第一行是:如何釋放在不同的AutoReleasePool中分配的對象?
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
這意味着將會有一個不同的自動發佈池。分配對象的代碼如下:
if (m_object != nil)
[m_object release];
m_object = [[MyClass alloc] init];
[m_object retain];
的問題是程序運行方法的最後一行時崩潰:
[pool release];
我在做什麼錯?我怎樣才能解決這個問題 ?
問候
艾倫