Нужно ли освобождать константы? - PullRequest
0 голосов
/ 15 сентября 2011

Как освобождается константа, объявленная ниже в части реализации класса:

static NSString *myconst = @"some data...";

Спасибо за помощь,

Стефан

Ответы [ 3 ]

2 голосов
/ 15 сентября 2011

Нет, вам не нужно освобождать строки, созданные с помощью @"".Вам нужно только освободить объекты, созданные с alloc, retain, copy или new.

1 голос
/ 15 сентября 2011

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

Прочитайте документы Apple по управлению памятью здесь

Однако следует отметить, что при прохождении релиза происходит сбой приложения. Следовательно, обычная идея: если вы не использовали alloc или retain в строке, не пытайтесь ее освободить.

Также прочитайте эту полезную ссылку здесь , которая объясняет то же самое.

1 голос
/ 15 сентября 2011

Вам не нужно выпускать его. Строковые литералы находятся в разделе данных исполняемого файла, а не в динамически выделенной памяти (куча AKA).

Нет никакого вреда, если вы случайно позвоните release. Я почти уверен, что литералы настроены тихо игнорировать этот вызов.

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