这真是一个愚蠢的问题,但我真的不知道该怎么做。 我有一个实用程序类,需要定义一些预定义的变量。这是我班级的样子。
#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
编译器告诉我第二行和第三行是错误的:
初始化程序不是常量。
定义变量的最佳做法是什么?
答案 0 :(得分:61)
NSRange是一个普通的c-struct,因此可以通过以下方式进行初始化:
NSRange HEADER_VERSION = {0, 4};
或
NSRange HEADER_VERSION = {.location = 0, .length = 4};
有关详细信息,请参阅gcc手册的Designated inits部分