2011-07-15 220 views
1

我創建了一個方法,像下面一個:內存泄漏問題

+ (JSONManager *)GetInstance 
{ 
    if (!instance) 
    { 
     instance = [[JSONManager alloc] init]; 
    } 
    return instance; 
} 

,我需要用同樣的方法在不同的視圖...如果我釋放它工作正常,第一種觀點這個如果試圖導航到第二個視圖我的應用程序崩潰。

任何一個可以請讓我知道我在哪裏需要釋放對象提前

+0

嘗試釋放它在其他視圖,其中u正在訪問該 – booleanBoy

+0

http://meta.stackexchange.com/q/5234/150789 –

回答

0

這似乎是一個單身

感謝。你不應該在第一個視圖中釋放它。您將希望在應用程序的整個生命週期中使用相同的實例。

如果這不是要求,您應該提供機制將instance變量設置爲nil,因爲它將在釋放對象後指向釋放對象。但我認爲情況並非如此。

0

該代碼看起來像一個Singleton。 Singleton的目的是在整個應用程序中有一個資源實例。

因此,在第一個視圖中完成後,您不應該釋放實例,因爲您想在另一個視圖中使用它。

如果你擔心釋放這種情況下看看下面的鏈接,一個模板單類iOS應用程序:

http://www.galloway.me.uk/tutorials/singleton-classes/

+0

雅這是單身......所以有沒有辦法沒有釋放它,但我越來越內存泄漏...我需要做什麼來避免泄漏 – vidya

+0

我已經添加了一個鏈接,供您在iOS應用程序中用作單身人士的模板。 –