Когда сохраняется счет для автоматического освобождения объекта? - PullRequest
1 голос
/ 10 февраля 2011

Если у меня есть объект с автоматическим выпуском, когда уменьшается его счет сохранения (т. Е. Значение, возвращаемое при вызове для него метода retainCount)?Я предполагал, что это будет, когда закончится область действия метода, в котором был выделен объект, но мои тесты не указывают на это.У меня есть код, подобный следующему:

int itemIndex = 0;
NSArray* items = [mResponse componentsSeparatedByString:@","];  
self.mText = (NSString*)[items objectAtIndex:itemIndex++];
self.mText = [mText gtm_stringByUnescapingFromURLArgument];
NSLog(@"retain count: %d",[mText retainCount]);

Это возвращает 2 для счетчика (mText имеет свойство retain, что имеет смысл), и после выхода из этого метода вызов извне также возвращает 2.

1 Ответ

5 голосов
/ 10 февраля 2011

Не смотрите на retainCount . Это вводит в заблуждение. Если вы будете следовать Руководству по программированию управления памятью , все будет в порядке.

Если вы перефразируете свой вопрос, чтобы сказать "Когда истекает пул автоматического выпуска по умолчанию?" тогда ответ - когда поток управления возвращается к циклу выполнения.

...