"release" недоступна: недоступна в режиме автоматического подсчета ссылок

Я изучаю, как программировать в операционной системе iOS, используя книгу "Head first iPhone and iPad development" (второе издание).

Screenshot

Когда я пытаюсь скомпилировать код из книги, я получаю сообщение об ошибке, что использование ключевого слова release недопустимо в режиме подсчета ссылок.

Должен ли я явно освобождать память в этом случае? Если да - как?

Ответ 1

Похоже, что ваша книга предшествует ARC.

Вы можете разработать приложение с тем же кодом, если вы отключите ARC в настройках проекта:

How to disable ARC

Но... ARC давно не работает, и iOS быстро меняется. Если в книге не упоминается ARC, это, вероятно, означает, что она нацелена на версию SDK iOS менее 5,0, что не всегда является лучшим способом изучения iOS в наши дни.

Вы можете грубо перевести в среду ARC, просто удалив [super dealloc], retain, release и autorelease из кода, который вы видите. Но важно понять, почему они есть в первую очередь и почему они больше не нужны с ARC.

Ответ 2

Вы включили Automatic Reference Counting (ARC) в свой проект. Это означает, что вы можете пропустить эти команды dealloc, release и autorelease.: -)