проверить сохранить количество

Я делаю это:

UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mainback.jpg"]];

[self.view addSubview:backgroundImage];
NSLog(@" retain count1 : %d " , [backgroundImage retainCount]);
[self.view sendSubviewToBack:backgroundImage];

[backgroundImage release];
NSLog(@" retain count2 : %d " , [backgroundImage retainCount]);

я получил

retain count1 : 2 
retain count2 : 1

1) в функции Dealoc я могу получить сообщение вроде:

- (void)dealloc{

NSLog(@" retain count2 : %d " , [backgroundImage retainCount]);
[super dealloc];
}

И 2) наконец-то я получил количество сохранений 1 для backgroundimage, так что все в порядке или должно быть 0 (ноль)??

Спасибо..


person iUser    schedule 20.08.2011    source источник
comment
Нет, вы никогда не должны использовать его. Спасает меня от объяснений, проверьте [это] [1] [1]: stackoverflow.com/questions/4636146/when-to-use-retaincount   -  person Lee Armstrong    schedule 20.08.2011


Ответы (1)


Согласно документы Apple,

Метод continueCount не учитывает какие-либо ожидающие сообщения автоматического освобождения, отправленные получателю.

Важно: Этот метод обычно бесполезен при отладке проблем с управлением памятью. Поскольку любое количество объектов фреймворка может сохранить объект для хранения ссылок на него, в то время как пулы автоматического выпуска могут содержать любое количество отложенных выпусков для объекта, очень маловероятно, что вы сможете извлечь пользу. информация из этого метода. Чтобы понять основные правила управления памятью, которые вы должны соблюдать, прочитайте «Правила управления памятью». Для диагностики проблем с управлением памятью используйте подходящий инструмент: Статический анализатор LLVM/Clang обычно может найти проблемы с управлением памятью еще до того, как вы запустите свою программу. Инструмент Object Alloc в приложении Instruments (см. Руководство пользователя Instruments) может отслеживать размещение и уничтожение объектов. Shark (см. Руководство пользователя Shark) также профилирует выделение памяти (среди множества других аспектов вашей программы).

person memmons    schedule 20.08.2011