рекомендации по управлению памятью для основных функций
-
18-09-2019 - |
Вопрос
Хотя управление памятью для базовых классов единообразно и документировано, я был удивлен, обнаружив (через дружественный EXC_BAD_ACCESS
), что Foundation функционирует, например NSStringFromSelector()
похоже, возвращают указатели на постоянное хранилище - что, по крайней мере, не упоминается в документации к функции.
Такое поведение где-то задокументировано?Существуют ли какие-либо последовательные рекомендации?
Решение
Правила на самом деле такие же, как и для методов Objective-C, как показано на примере эти документы по основным фундаментальным функциям.
Итак, в вашем примере, поскольку слова alloc
, new
, create
или copy
отсутствуют, объект, который вы возвращаете, не принадлежит вам (он будет либо иметь статическое хранилище, либо будет автоматически освобожден).