ARC prohíbe objetos Objective-C en estructuras o uniones a pesar de marcar el archivo -fno-objc-arc

ARC prohíbe objetos Objective-C en estructuras o uniones a pesar de marcar el archivo -fno-objc-arc? ¿Por qué esto es tan?

Supongo que si lo marcas -fno-objc-arc no tienes esta restricción.

Si recibió este mensaje, intente __unsafe_unretained. Solo es seguro, si los objetos en la estructura no están retenidos. Ejemplo: Si usa OpenFeint con ARC, la clase OFBragDelegateStrings dice este error en una estructura.

typedef struct OFBragDelegateStrings { NSString* prepopulatedText; NSString* originalMessage; } OFBragDelegateStrings; 

a

 typedef struct OFBragDelegateStrings { __unsafe_unretained NSString* prepopulatedText; __unsafe_unretained NSString* originalMessage; } OFBragDelegateStrings; 

En lugar de utilizar una estructura , puede crear una clase Objective-C para administrar los datos en su lugar.

Esto se debe a que el arco no puede rastrear objetos en estructuras o uniones (ya que en ese punto son simples punteros C).

Aunque marcó el archivo / clase en cuestión con -fno-objc-arc , aún puede pasar un objeto controlado por arco como parámetro, lo que muy probablemente resultaría en una pérdida de memoria.