Выпуск iOS 5 NSString недоступен - PullRequest
2 голосов
/ 17 ноября 2011

Я прочитал в Интернете, что когда я создаю объект с alloc и init, я должен выпустить его (даже NSString), поэтому:

Почему, если я создаю NSString таким образом:

NSString *prova = [[NSString alloc] init];
[prova release];

Я получаю эти ошибки:

«Релиз» недоступен: недоступен в режиме автоматического подсчета ссылок

и

ARC запрещает явную отправку сообщения «release»

в сообщении [prova release]? Я не получаю ошибку, когда я пытаюсь сделать это:

NSString *prova = [[NSString alloc] init];
NSLog(@"Contenuto 0 di prova: %@", prova);
prova = @"prima prova stringa";
NSLog(@"Contenuto 1 di prova: %@", prova);
prova = @"ma cosè questo fantomatico errore";
NSLog(@"Contenuto 2 di prova: %@", prova);

Ответы [ 4 ]

5 голосов
/ 17 ноября 2011

Это лучшая практика до iOS 5 или в iOS 5, если режим ARC отключен.Теперь iOS 5 использует новый компилятор LLVM от Apple, который представляет эту функцию ARC .

Так что, если ARC включен (и это по умолчанию), вам не нужно использовать, в общем,метод release больше.Вы можете найти более подробную информацию в документации .

Если вы все еще хотите разработать старый способ, вы можете добавить флаг -fno-objc-arc в разделе «Этапы сборки» проекта Xcode

4 голосов
/ 17 ноября 2011

Вы используете новую ARC от Apple (автоматический подсчет ссылок).ARC - это новая функция компилятора, которая автоматически добавляет сохранение, освобождение и автоматическое освобождение во время компиляции.

Посмотрите на узлы выпуска iOS 5 для получения дополнительной информации о ARC: http://developer.apple.com/technologies/ios5/

Автоматический подсчет ссылок (ARC) для Objective-C делает управление памятью работой компилятора.Включив ARC с помощью нового компилятора Apple LLVM, вам больше не нужно вводить retain или release снова, что значительно упрощает процесс разработки, уменьшая сбои и утечки памяти.Компилятор полностью разбирается в ваших объектах и ​​выпускает каждый объект в тот момент, когда он больше не используется, поэтому приложения работают так же быстро, как и всегда, с предсказуемой, плавной производительностью.

0 голосов
/ 17 ноября 2011

ARC - это новая функция в IOS5, которая означает автоматический подсчет ссылок ... Вам не нужно следить за выпуском и все, как вы используете дугу в своем приложении. Вы можете отменить выбор, когда начинаете новый проект, в окошке.

0 голосов
/ 17 ноября 2011

в ios 5 нет необходимости освобождать объекты, он автоматически освобождает ваш объект.или другим способом отключите "Автоматический подсчет ссылок Objective-C" ARC от вашего xcode

...