Tengo una aplicación iOS construida desde el principio con un error en ella. Desde que se inició la fuente construida a partir del molde, su appdelegate.h parece:No se puede declarar la variable dentro de @interface o @protocol
@interface myAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
myViewController *viewController;
}
BOOL myBool; // intended to be globally accessible
NSString *myString; // intended to be globally accessible
@end
Me refiero a myBool y * miCadena de muchos otros archivos de origen .m, en cuanto a las variables globales.
Debajo de XCode 3.2.6, no recuerdo haber tenido problemas en tiempo de compilación.
En 3.2.6, apareció una advertencia en la compilación señalando estas variables "globales" en appdelegate.h, diciendo: "No se puede declarar la variable dentro de @interface o @protocol". Como no hubo más problemas con la compilación o durante el tiempo de ejecución de la aplicación, lamentablemente no consideré estas advertencias.
Ahora, utilizando XCode 4.2, no puedo compilar esta fuente, porque las advertencias anteriores se convirtieron en errores de compilación. Se refieren y señalan cada una de esas líneas en los diferentes archivos .m donde hay una referencia a las "variables globales".
¿Existe una manera fácil de corregir este problema, teniendo en cuenta que todavía quiero acceder a estas variables/referencias como globales?
pregunta adicional: mientras yo estoy evaluando las respuestas recibidas hasta la fecha (gracias por todos ustedes), otra pregunta: idea de por qué ninguna advertencia se da a continuación v3.2.6 XCode, y sólo advertencias en 3.2.6 si esto ¿Es un error real de mi parte? ¿Y por qué el código todavía se compiló y podría ejecutarse sin ningún problema?
Como una palabra de precaución, las variables "globales" en este sentido son por lo general una mala idea en programación orientada a objetos, ya que van en contra de localidad y encapsulación. Hay mucha lectura en línea sobre este tema. –