views:

41

answers:

1

Guys:

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?

+4  A: 

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

Vladimir
Thanks. It works fine!
icespace
Incidentally, icespace, none of these is static. To declare a static variable, you must put `static` in front of it.
Peter Hosey