Подтвердить что ты не робот

Как я могу исправить эту ошибку: "ARC запрещает явное сообщение отправки" release "в Xcode"

Я пытаюсь сделать простой образ анимации в iPhone из массива изображений:

- (void)viewDidLoad {
    NSArray *imageArray;
    imageArray = [[NSArray alloc] initWithObjects:
                  [UIImage imageNamed:@"sun1"],
                  [UIImage imageNamed:@"sun2"],
                  nil];
    fadeImage.animationImages = imageArray;
    fadeImage.animationDuration = 1;
    [imageArray release];  //==== HERE IS WHERE I GET THE ERROR ======

Как я могу это исправить?

4b9b3361

Ответ 1

Решение № 1:

Просто удалите выражение о выпуске. ARC поможет вам.

[imageArray release]; // remove this line

ARC - это автоматический подсчет ссылок. Как в отличие от ручного подсчета ссылок.
Есть несколько отличных видеороликов с выступлениями из WWDC. Я могу предоставить ссылку, если вы хотите посмотреть их.

В Переходе к заметкам о выпуске ARC см. ARC Enforces New Rules:

Вы не можете явно вызывать dealloc или реализовывать или вызывать retain, релиз, retainCount или авто-релиз.

Запрет распространяется на использование @selector (сохранить), @selector (выпуск) и т.д.

Решение № 2:

Если вы не хотите преобразовывать код в ARC (например, вы не пишете новое приложение, но поддерживаете старое приложение или импортировали столько кода, что переход на ARC не стоит), вы можете отключить ARC.

  • Отключение ARC для выбранных файлов Чтобы отключить ARC, вы можете использовать флаг компилятора -fno-objc-arc для определенных файлов. Выберите цель и перейдите к Build PhasesCompile Sources. Отредактируйте Compiler Flags и добавьте -fno-objc-arc

  • Отключение ARC для проекта
    Источник:Как отключить автоматический подсчет ссылок в Xcode4.2

    • Нажмите на свой проект в левом органайзере.
    • Выберите цель в следующем столбце.
    • Выберите вкладку "Настройки сборки" вверху.
    • Прокрутите вниз до "Objective-C Автоматический подсчет ссылок" (он может быть указан как
    • "CLANG_ENABLE_OBJC_ARC" в группе пользовательских настроек) и установите для него значение NO.