2014-08-28 3 views
0

Я медленно изучаю Obj-C, так что извините, если это вопрос о нобе.Повторное назначение объектов вызывает утечку памяти?

В моем приложении у меня есть класс под названием Object, который просто содержит кучу переменных.

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

Я создаю экземпляр этого класса в объекте Static Singleton в моей программе. Однако я заметил, что всякий раз, когда я создаю новый экземпляр (у меня есть кнопка, которая вызывает метод resetObject), мое использование памяти увеличивается.

// DataBank.h 
Object *object; 

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

Я предполагаю, что это, вероятно, связано с тем, что старый экземпляр объекта не был освобожден? Я попробовал освободить его, но мне дана ошибка, с которой ARC не допускается. Есть ли способ обойти это?

+0

нет ... в коде выше нет утечки. (предполагая, что Object [, который нам нужно будет видеть] сам по себе хорошо) –

+0

то, что протекает, и когда –

+0

Проблема в том, что всякий раз, когда я вызываю [DataBank resetObject], использование моей памяти увеличивается на 1.5MB – Dilisqq

ответ

-1

Не могли бы вы попытаться изменить свой код следующим образом?

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

Он использует ARC, поэтому релиз не разрешен. –

Смежные вопросы