我正在從「XMLReader」類讀取XML文件,該類是我從應用程序委託創建和調用的。在XMLReader類中,我創建了一個包含在XML中讀取的數據的「AppState」對象。 XMLReader在創建它時自動釋放AppState類。當XMLReader完成時,應用程序委託將AppState實例分配給它自己的變量,保留它並釋放XMLReader類。在應用程序委託的代碼看起來是這樣的:內存分配設計問題
XMLReader *xmlReader = [[XMLReader alloc] init];
[xmlReader parseXMLData: data];
appState = xmlReader.appState; // <== xmmReader creates appState with autorelease
[appState retain];
[xmlReader release];
我有點不清楚是否有你不應該需要在類中保持分配對象該對象被分配的約定。在這種情況下,由於autorelease需要 - 如果我不保留它在應用程序委託中,應用程序崩潰。有沒有更好的辦法?例如我可以在委託中創建AppState並將其設置在XML閱讀器中。這樣alloc和release可以在同一個類中。這樣做的典型方法是什麼?
完美的工作。謝謝。 – 2011-03-06 20:30:45