Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a static NSRange?

It is really a stupid question, but I really don't know how to. I have a utility class and need to define some pre-defined variables. Here's how my class looks.

#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 

The compiler tell me the second and the third lines are error:

initializer is not constant.

What is the best practice of defining the variables?

like image 922
icespace Avatar asked Oct 31 '10 09:10

icespace


1 Answers

NSRange is a plain c-struct so it can be initialized the following way:

NSRange HEADER_VERSION = {0, 4}; 

or

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

See Designated inits section of gcc manual for more details

like image 86
Vladimir Avatar answered Sep 30 '22 08:09

Vladimir