2011-12-07 10 views
6

Cuando ejecuto código usando la palabra clave @autorelease en iOS 4.3.x arroja este error.¿Qué versión de iOS se requiere para usar @autoreleasepool?

dyld: lazy symbol binding failed: Symbol not found: _objc_autoreleasePoolPush 
    Referenced from: /Users/Eonil/Library/Application Support/iPhone Simulator/4.3.2/Applications/3782382E-293A-4D5E-86E6-28BE35CF6048/EonilCocoaComplementsTester.app/EonilCocoaComplementsTester 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

dyld: Symbol not found: _objc_autoreleasePoolPush 
    Referenced from: /Users/Eonil/Library/Application Support/iPhone Simulator/4.3.2/Applications/3782382E-293A-4D5E-86E6-28BE35CF6048/EonilCocoaComplementsTester.app/EonilCocoaComplementsTester 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

Pensé que la palabra clave es simplemente el reemplazo de la creación/eliminación explícita de la agrupación de autorelease. De todos modos, no fue así, y arrojó un error. ¿Es compatible solo en una versión específica de iOS? Entonces, ¿dónde puedo consultar la información de la versión sobre esta palabra clave?

+1

esto podría ser útil http://stackoverflow.com/questions/8069570/autoreleasepool-make-errors – RolandasR

Respuesta

4

¿Se está refiriendo a @autoreleasepool?

Puede usar @autoreleasepool en una aplicación con un objetivo de compilación de iOS 4.3.x si está utilizando Xcode 4.2 y iOS 5 SDK. A pesar de transitioning to ARC guidelines que indica que "ARC introduce un constructo de enunciado a la gramática Objective-C" en @autoreleasepool, lo que podría sugerir que se requiere ARC, continúa diciendo que "Esta sintaxis está disponible en todos los modos Objective-C".

Si bien no creo que sea una documentación particularmente clara, lo que esto significa es que puede usar la sintaxis de @autoreleasepool con y sin ARC, si usa el iOS 5 SDK.

+0

@autoreleasepool no requiere ARC. ver .. http://stackoverflow.com/q/7950583/927947 – NJones

+0

Ah, interesante, he actualizado mi respuesta para corregir esto y resaltar las partes clave de la documentación vinculada que en la primera lectura podrían malinterpretarse ... como lo hice . :) –

3

@autoreleasepool simplemente probado {} en la primera generación de iPhone con iOS3.0 - funciona sin problema

+0

Eso es cierto, acabo de probar en mi iPhone 3G iOS 3.1.3, sin problemas – JomanJi

3

parece ser un error en el simulador.

Configurar el destino de implementación a 4.2 en lugar de 4.2.1 funcionó para mí.

enter image description here

+0

Tuve exactamente el mismo problema y esto también lo resolvió para mí – wasabi

+0

este me funcionó. +1 por eso :) – pahan

Cuestiones relacionadas