@autoreleasepool без ARC? - PullRequest
       12

@autoreleasepool без ARC?

31 голосов
/ 31 октября 2011

Я новичок в Xcode 4.2 и еще не до конца освоил ARC. Тем не менее, я прочитал, что @autoreleasepool заменяет использование пулов с автоматическим выпуском вручную и создает особую магию, чтобы хорошо играть с ARC.

Тем не менее, когда я начинаю новый проект в Xcode 4.2, в частности, с параметром ARC, выключенным , я все равно получаю операторы @autoreleasepool в коде шаблона.

В чем здесь дело?

1 Ответ

50 голосов
/ 31 октября 2011

С http://clang.llvm.org/docs/AutomaticReferenceCounting.html#autoreleasepool:

@autoreleasepool может использоваться в не-ARC переводческих единицах с эквивалентной семантикой.

, а Грег Паркер говорит [1] [2] :

LLVM 3.0 @autoreleasepool { ... } намного быстрее, чем NSAutoreleasePool, если цель развертывания достаточно новая.ARC не требуется.(…) Всегда работает, но быстрее с целью развертывания OS X 10.7 или iOS 5.0.

Так что вы можете использовать @autoreleasepool независимо от ARC, и это будет быстрее, чем NSAutoreleasePoolна OS X v10.7 + и iOS 5.0 +.

...