Identificatore non dichiarato __ponte su xcode

Sto cercando di convertire un CFUUIDRef per una NSString *.

Prima, ho usato il seguente codice, e ha funzionato bene.

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

Tuttavia, dopo un recente aggiornamento di Xcode (o altra cosa che non ho notato?), il codice di cui sopra mi dà l’errore:

Uso di un identificatore non dichiarato ‘__bridge’

Così ho fatto qualcosa di sbagliato? Come potrei risolvere?

=== AGGIORNAMENTO ===

Il codice completo:

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

L’uuid è generato da:

uuid = CFUUIDCreate(NULL);
Avete ARCO acceso?
Si lamenta che l’ARCO non permettono la conversione…io sono molto nuovo a xocde e non so come passare né come verificare se si è in realtà.
ARCO di rotazione indietro, se si desidera utilizzare, e ci mostrano il codice completo che il suo lamentarsi.
Come trasformare un ARCO?

OriginaleL’autore PeterWong | 2011-08-15

1 risposta

  1. 20

    __bridge è definito solo con ARC (Automatic Reference Counting) abilitata. È usato “per trasferire gli oggetti dentro e fuori il controllo dell’ARCO”. (Fonte)

    Per attivare ARCO, vai per la tua build impostazioni e impostare Objective-C Automatic Reference Counting per Yes.

    O, se non si desidera utilizzare l’ARCO, semplicemente rimuovere __bridge e dovrebbe funzionare bene.

    Ciao ho usato la risposta data qui: stackoverflow.com/questions/9342225/…, Ma sempre errori. A vedere i miei commenti collegata a quella risposta. Potete per favore aiutarmi.

    OriginaleL’autore Pontus Granström

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *