Tutto ciò che serve è utilizzare semplici variabili globali C vecchie.
In primo luogo, definire una variabile nel vostro main.m
, prima che la funzione main
:
#import <...>
// Your global variable definition.
type variable;
int main() {
...
In secondo luogo, è necessario lasciare che altri file di origine sapere. È necessario dichiarare in qualche file di .h
e importare il file in tutto .m
file necessari la variabile in:
// .h file
// Declaration of your variable.
extern type variable;
Notare che non è possibile assegnare un valore alla variabile nel blocco di dichiarazione, altrimenti diventa una definizione di che variabile, e finisci con l'errore del linker che si lamenta su più definizioni dello stesso nome.
di fare chiarezza: ogni variabile può essere dichiarata più volte (Dichiarazione afferma che questa variabile esiste da qualche parte), ma definito solo una volta (definizione crea in realtà di memoria per quella variabile).
Ma attenzione, le variabili globali sono una cattiva pratica di codifica, poiché il loro valore può essere modificato in modo imprevisto in uno qualsiasi dei file, pertanto è possibile riscontrare errori di debug. Ad esempio, puoi evitare le variabili globali usando il pattern Singleton.
Imo, le variabili globali effettivamente fare un sacco di senso in Objective C, data la tendenza per un sacco di cose per essere naturalmente singleton, in particolare i controller di visualizzazione. In questo caso agiscono più come costanti che come variabili. – devios1
In realtà i singleton usano una variabile globale - l'istanza condivisa -, rendendo così ogni membro globale; stai solo sostituendo un tipo di globalness con un altro. – Cristik