Задача C Структуры и управление памятью - PullRequest
6 голосов
/ 19 августа 2009

Простой вопрос - нужно ли мне освобождать или освобождать структуры. Я спрашиваю, что я использую NSInvocation, а тип SEL - это структура. Просто хочу знать, нужно ли мне это выпустить. Спасибо.

Ответы [ 3 ]

14 голосов
/ 19 августа 2009

В Objective-C и C в целом, если что-то не является указателем на другое место в памяти и все это размещено в стеке, вам не нужно его освобождать. Он освободится, как только указатель стека будет настроен в конце функции.

4 голосов
/ 19 августа 2009

SEL следует рассматривать как непрозрачный тип (это char * в 32-разрядной среде выполнения), и почти каждое использование будет статическим экземпляром (@selector()) или «временной» переменной (NSSelectorFromString()) ни один из которых не нуждается в освобождении, потому что вы его не выделили.

2 голосов
/ 19 августа 2009

Что касается структур C и управления памятью, Objective-C ничем не отличается от C: если вы malloc() это, вам следует free() это (в какой-то момент).

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