Утечка, когда авто выпущено взамен - PullRequest
0 голосов
/ 25 августа 2011

Я нашел эту странную вещь.Инструменты XCode сообщают мне, что эта строка

return (SDZPerson*)[[[SDZPerson alloc] initWithNode: node] autorelease];

протекает.Но если я изменю его на:

SDZPerson* person = [[[SDZPerson alloc] initWithNode: node] autorelease];
return person;

Приборы больше не сообщают об утечке в этом месте.Это действительно утечка или ничего?

Спасибо всем заранее.

1 Ответ

0 голосов
/ 25 августа 2011

Даже если два фрагмента кода немного отличаются (1-й содержит преобразование типов), я сомневаюсь, что инструменты указывают на это как утечку из-за автоматического выпуска в операторе возврата.

Можно использовать добавление autorelease в операторе возврата.

Вы должны попробовать

SDZPerson* person = [[SDZPerson alloc] init];
/** do your stuff here if needed */
return [person autorelease];

или даже

return [[[SDZPerson alloc] init] autorelease;
...