如何创建静态NSRange?

时间:2010-10-31 09:50:24

标签: objective-c cocoa

这真是一个愚蠢的问题,但我真的不知道该怎么做。 我有一个实用程序类,需要定义一些预定义的变量。这是我班级的样子。

#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

编译器告诉我第二行和第三行是错误的:

  

初始化程序不是常量。

定义变量的最佳做法是什么?

1 个答案:

答案 0 :(得分:61)

NSRange是一个普通的c-struct,因此可以通过以下方式进行初始化:

NSRange HEADER_VERSION = {0, 4};

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

有关详细信息,请参阅gcc手册的Designated inits部分