我有創建對象,其然後被傳遞到另一對象的方法在另一個線程,像這樣的物體的方法,包括:自動釋放物體
MyClass* myClass = [[MyClass alloc] init];
[anotherClass performSelectorOnMainThread:@selector(method) withObject:myClass waitUntilDone:NO];
在方法中,我立即保留該對象,假設它將以某種方式由創建者發佈。我的問題是:我如何讓MyClass正確釋放該對象?這是正確的方法嗎?
我的解決方案是在方法中手動釋放對象。無論如何,我發現泄漏分析儀仍然認爲這是泄漏,似乎不是Apple推薦的,因爲所有者有責任釋放該物體。
你能解釋一下處理這種情況的正確方法嗎?謝謝!
哎呀,對不起,我忘了一個重要的元素:執行我報告的指令的線程不是可可線程。我使用POSIX線程創建它。 – 2011-01-08 10:30:59
Cocoa線程和POSIX線程沒有區別。但請確保您在線程的開頭創建一個自動釋放池。 – Yuji 2011-01-08 12:24:08
我讀過它也有必要創建至少一個NSThread以便能夠使用NSAutoreleasePools。 – 2011-01-08 14:13:18