2010-10-31 10 views
33

È davvero una domanda stupida, ma davvero non so come. Ho una classe di utilità e ho bisogno di definire alcune variabili predefinite. Ecco come appare la mia classe.Come creare un NSRange statico?

#pragma mark File header part definiation (start offset, length) 
NSRange HEADER_VERSION = NSMakeRange(0, 4); /* 0,4 */ 
NSRange HEADER_IDENTIFIER = NSMakeRange(4, 18); /* 4, 18*/ 
... 

@interface ParserUtil : NSObject { 

} 

/*Parse Paper instance from file*/ 
+(Paper*) parsePaper:(NSURL*)file; 
@end 

Il compilatore mi dicono le linee secondo e il terzo sono errore:

initializer is not constant.

Qual è la migliore pratica di definire le variabili?

risposta

61

NSRange è un c-struct piana in modo che possa essere inizializzato seguente modo:

NSRange HEADER_VERSION = {0, 4}; 

o

NSRange HEADER_VERSION = {.location = 0, .length = 4}; 

Vedi Designated inits sezione di manuale gcc per maggiori dettagli

+1

Incidentalmente, icespace , nessuno di questi è statico. Per dichiarare una variabile statica, devi mettere 'static' di fronte ad essa. –

+0

L'ultimo stile è supportato in LLVM? – Richard

+0

È compilato correttamente nell'ultima versione xcode ... – Vladimir

Problemi correlati