2011-08-15 11 views
10

Estoy tratando de convertir un CFUUIDRef en un NSString *.Identificador no declarado __bridge en xcode

Antes, usaba el siguiente código y funcionaba bien.

CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef 
return (__bridge NSString *) str; 

Sin embargo, después de una actualización reciente de Xcode (? O de otra cosa que no me di cuenta), el código anterior me da el error:

El uso de identificador no declarado '__bridge'

Entonces, ¿he hecho algo mal? ¿Cómo podría resolverlo?

=== === ACTUALIZADA

El código completo:

+ (NSString *)uuidToString:(CFUUIDRef)_uuid { 
    CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef 
    return (__bridge NSString *) str; 
} 

el UUID es generado por:

uuid = CFUUIDCreate(NULL); 
+0

¿Tiene ARC encendido? – Wevah

+0

Se quejó de que ARC no permite la conversión ... Soy muy nuevo en xocde y no sé cómo activarlo ni cómo verificar si está realmente activado. – PeterWong

+0

Vuelva a encender ARC, si desea usarlo, y muéstrenos el código completo del que se queja. –

Respuesta

20

__bridge solamente se define con ARC (Automatic Counting Referencia) habilitado Se usa para "transferir objetos dentro y fuera del control ARC". (Source)

Para activar ARC, vaya a la configuración de su compilación y configure Objective-C Automatic Reference Counting en Yes.

O, si no desea utilizar ARC, simplemente elimine __bridge y debería funcionar bien.

+1

Hola, he usado la respuesta dada aquí: http://stackoverflow.com/questions/9342225/how-to-check-network-provider-name-in-ios-programming/9342559#comment11800200_9342559 Pero obteniendo errores. Vea mis comentarios adjuntos a esa respuesta. ¿Puedes ayudarme por favor? – Mrunal

Cuestiones relacionadas