我一直在追蹤爲什麼NSObject引用在顯式釋放時仍然顯示在ObjectAlloc中。事實上,已經將NSObject簡化爲一個基本的shell,一個[[myObject alloc] init]緊跟着一個[myObject release],並且它看起來不像是在ObjectAlloc中發佈的。這是NavigationController應用程序的一個大問題,因爲最近彈出的視圖控制器沒有被釋放,因爲這些'未發佈'的NSObject引用,所以推送/彈出多個視圖控制器。 Hmmmmmm。NSObject release ...仍然出現在ObjectAlloc
我可以把我的代碼放在這裏,並有一堆'你從來沒有得到任何地方。自動釋放池,等等等等。
所以,讓我們來看看蘋果示例的'SeismicXML'示例應用程序...在ObjectAlloc/Leaks中啓動它。在getEarthquakeData中非常基本:
XMLReader *streamingParser = [[XMLReader alloc] init];
[streamingParser parseXMLFileAtURL:[NSURL URLWithString:feedURLString] parseError:&parseError];
[streamingParser release];
我看到一堆垃圾在XMLReader中放在ObjectAlloc中,儘管釋放它。我敢打賭,如果我們在此應用上放置「刷新」按鈕來再次調用「getEarthquakeData」,我們會在5次刷新中崩潰應用。
有什麼想法?
您是否嘗試過使用手機或只是模擬器? 這是什麼引起你101退出的實際問題? – 2009-06-01 06:44:39