Как использовать объект после выпуска? - PullRequest
0 голосов
/ 21 ноября 2010

декларация foo в ч. файл

Я делаю [foo release] операцию

Далее мне нужно использовать foo второй раз. Как?

Ответы [ 2 ]

6 голосов
/ 21 ноября 2010

Вы не можете повторно использовать объект после того, как он был освобожден.

Вы просто не должны отпускать его до завершения второй операции.

5 голосов
/ 21 ноября 2010

Как указано выше, вы не можете использовать объекты после того, как они были освобождены.Смещение происходит, когда их retainCount обращается в ноль.Если по какой-либо причине вы не можете удалить этот звонок [foo release], вы должны позвонить [foo retain] заранее.Вы также можете попробовать позвонить по номеру [foo autorelease] вместо [foo release], если ваше второе использование вскоре после.

Существует очень хорошее руководство по управлению памятью в Objective-C здесь: Стэнфордская лекция cs193p 4

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