Todo lo que necesita es utilizar variables globales C simples antiguas.
En primer lugar, definir una variable en su main.m
, antes de que su función main
:
#import <...>
// Your global variable definition.
type variable;
int main() {
...
En segundo lugar, es necesario dejar que otros archivos de origen conocen. Tiene que declarar que en algún archivo .h
e importar ese archivo en toda .m
archivos que necesita la variable en:
// .h file
// Declaration of your variable.
extern type variable;
Tenga en cuenta que no se puede asignar un valor a la variable en el bloque de declaración, de lo contrario se convierte en una definición de ese variable, y finaliza con el error del enlazador quejándose en múltiples definiciones del mismo nombre.
dejar las cosas claras: cada variable puede ser declarado varias veces (Declaración dice que existe esta variable en alguna parte), pero define sólo una vez (en realidad crea definición de memoria para esa variable).
Pero tenga cuidado, las variables globales son una mala práctica de codificación, porque su valor puede cambiar inesperadamente en cualquiera de los archivos, por lo que puede encontrar errores difíciles de depurar. Puede evitar variables globales utilizando el patrón Singleton, por ejemplo.
Imo, las variables globales en realidad hacen mucho sentido en Objective C, dada la tendencia a que una gran cantidad de cosas para ser naturalmente singletons, especialmente los controladores de vista. En este caso, actúan más como constantes que como variables. – devios1
En realidad, los singleton usan una variable global, la instancia compartida, lo que hace que cada miembro sea global; solo estás reemplazando un tipo de globalidad con otro. – Cristik