2009-02-16 3 views
14

Se io dichiarare una costante stringa in questo modo:Integer costanti

È necessario creare un file di intestazione come

// Constants.h 
extern NSString * const MyFirstConstant; 
extern NSString * const MySecondConstant; 
//etc. 

È possibile includere questo file in ogni file che utilizza le costanti o in pre-compilato intestazione per il progetto.

È possibile definire queste costanti in un file .m come

// Constants.m 

NSString * const MyFirstConstant = @"FirstConstant"; 
NSString * const MySecondConstant = @"SecondConstant"; 

Cosa devo fare per definire costanti intere?

risposta

37

Sostituisci NSString * con NSInteger.

Questo è vero per qualsiasi tipo costante, sia esso primitivo come int/float o una classe come NSString o NSInteger.

L'unica cosa da considerare è se si desidera una costante o un puntatore a una costante (come withNSString), e come è inizializzato nel file .m

esempio Integer:

// constants.h 
extern NSInteger const MyIntegerConstant; 

// constants.m 
NSInteger const MyIntegerConstant = 666; 

(Nota: per il motivo per cui NSInteger invece di regolare "int", vedi this post) esempio

Classe:

// constants.h 
extern MyClass* const MyClassConstant; 

// constants.m 
MyClass* const MyClassConstant= [[MyClass alloc] initWith: paramOne and:paramTwo]; 
+0

Grazie andrew: questa classe sarebbe stata dislocata? –

+0

Non lo sarebbe, la memoria verrebbe pulita quando il programma termina. Se desideri avere il controllo manuale su questo puoi aggiungere le funzioni initializeConsts/releaseConsts all'inizio/alla fine del tuo programma –

+1

Grazie andy - Sto usando il codice sopra nel mio add e sto ricevendo l'errore di compilazione nelle mie istruzioni Switch : "MyIntegerConstant" non equivale a un numero intero –