Возвращает ли lastObject в NSMutableArray копию объекта? - PullRequest
3 голосов
/ 20 февраля 2012

У меня есть вопрос, связанный с этим фрагментом кода

NSNumber *lastObject = [self.myStack lastObject];

if(lastObject){
    [self.myStack removeLastObject];
}

return [lastObject doubleValue];

Я удивлен, что lastObject все еще находится в памяти, несмотря на удаление. Как это происходит? lastObject возвращает копию объекта?

1 Ответ

4 голосов
/ 20 февраля 2012

Нет, это не копия, а просто автоматический выпуск. Он будет выпущен в ближайшее время.

РЕДАКТИРОВАТЬ: для уточнения - на [self.myStack removeLastObject] объект отправляется release немедленно, но вы получили автоматически освобожденный указатель от [self.myStack lastObject], поэтому массив не является последним владельцем объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...