xcode xcode4.2 automatic-ref-counting

xcode - @autoreleasepool sin ARC?



xcode4.2 automatic-ref-counting (1)

Soy nuevo en Xcode 4.2, y todavía no estoy al día con ARC. Sin embargo, sí leí que @autoreleasepool reemplaza el uso manual de los grupos de autorelease y hace algo de magia especial debajo del capó para jugar bien con ARC.

Sin embargo, cuando comienzo un nuevo proyecto en Xcode 4.2 específicamente con la opción ARC desactivada , sigo recibiendo declaraciones de @autoreleasepool en el código de la plantilla.

¿Cuál es el trato aquí?


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

@autoreleasepool se puede usar en unidades de traducción que no sean ARC, con semántica equivalente.

y Greg Parker dice [1] [2] :

El @autoreleasepool { ... } LLVM 3.0 es mucho más rápido que NSAutorelease si su objetivo de implementación es lo suficientemente nuevo. No requiere ARC. (...) siempre funciona, pero es más rápido con el destino de implementación de OS X 10.7 o iOS 5.0.

Por lo tanto, puede usar @autoreleasepool independientemente de ARC, y será más rápido que NSAutoreleasePool en OS X v10.7 + e iOS 5.0+.