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

Вам нужно выпустить очереди GCD под ARC в iOS 6.0?

Следуя руководству iOS 5 по курсу Пола Хегарти, мы видим этот код в приложении, которое демонстрирует использование GCD. По-видимому, GCD требует освобождения из-за проблем, связанных с многопоточным чтением, несколько непредсказуемым в том, какие объекты по-прежнему необходимы.

  dispatch_async(dowloadQueue, ^{
    ....
    // do some stuff
   ....
    });
  dispatch_release(dowloadQueue);

Я обновил iOS 6 и XCode 4.5, и я получил    Сообщение "ARC запрещает явное освобождение..."

Я не пробовал этот код под iOS5/XCode 4.2

Это просто потому, что ARC стал более умным, и мне больше не нужен выпуск в GCD? Или я просто неправильно понял?

4b9b3361

Ответ 1

Когда вы нацеливаете Mountain Lion и iOS 6.0, ARC теперь будет управлять очередями отправки и другими типами GCD для вас. Если вы настроите таргетинг на более ранние версии OS X или iOS, вам все равно придется явно сохранять и выпускать типы GCD (не только по соображениям безопасности потоков, в противном случае вы будете утечка памяти), но это будет выполняться для вас, если вы используете только таргетинг на новую ОС версии.

Вот почему вы видите такую ​​ошибку компилятора в ARC при таргетинге на iOS 6.0.