2014-08-28 81 views
0

我正在慢慢學習Obj-C,所以我很抱歉如果這是一個noob問題。重新分配對象會導致內存泄漏?

在我的應用程序中,我有一個名爲Object的類,它只是包含一堆變量。

Object *object = [[Object alloc] init]; 

我在我的程序中的Static Singleton對象中創建了這個類的一個實例。然而我注意到,無論何時我創建它的新實例(我有一個調用resetObject方法的按鈕),我的內存使用率都會增加。

// DataBank.h 
Object *object; 

// DataBank.m 
- (void)resetObject { 
    object = [[Object alloc] init]; 
    } 

我猜這可能是由於對象的舊實例未被釋放?我嘗試釋放它,但我給出了一個錯誤,它不允許使用ARC。有沒有辦法解決?

+0

不......上面的代碼沒有泄漏。 (假設Object [我們需要看到]本身沒有問題) – 2014-08-28 08:21:00

+0

什麼是泄漏和什麼時候 – 2014-08-28 08:22:17

+0

問題是,每當我調用[DataBank resetObject]時,我的內存使用增加了1.5MB – Dilisqq 2014-08-28 08:29:27

回答

-1

你可以嘗試修改你的代碼如下?

// DataBank.m 
- (void)resetObject { 
    if (object) 
    { [object release];} 
    object = [[Object alloc] init]; 
} 
+0

他使用ARC,因此不允許發佈。 – 2014-08-28 09:57:23