#xcode #xcode4.2 #automatic-ref-counting
#xcode #xcode4.2 #автоматический подсчет ссылок
Вопрос:
Я новичок в Xcode 4.2, и я еще не полностью освоился с ARC. Тем не менее, я читал, что @autoreleasepool заменяет ручное использование пулов автоматического выпуска и выполняет какую-то особую магию под капотом, чтобы хорошо играть с ARC.
Тем не менее, когда я запускаю новый проект в Xcode 4.2, в частности, с отключенной опцией ARC, я все равно получаю инструкции @autoreleasepool в коде шаблона.
В чем здесь дело?
Ответ №1:
Из http://clang.llvm.org/docs/AutomaticReferenceCounting.html#autoreleasepool:
@autoreleasepool
может использоваться в единицах перевода, отличных от ARC, с эквивалентной семантикой.
и Грег Паркер говорит [1] [2]:
LLVM 3.0
@autoreleasepool { ... }
намного быстрее, чем NSAutoreleasePool, если ваша цель развертывания достаточно новая. Дуга не требуется. (…) всегда работает, но это быстрее с целью развертывания OS X 10.7 или iOS 5.0.
Таким образом, вы можете использовать @autoreleasepool
независимо от ARC, и это будет быстрее, чем NSAutoreleasePool
в OS X версии 10.7 и iOS 5.0 .