Как создать статический NSRange?
Это действительно глупый вопрос, но я действительно не знаю, как это сделать.
У меня есть класс утилиты и нужно определить некоторые предопределенные переменные. Вот как выглядит мой класс.
#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
NSRange - это простая c-структура, поэтому ее можно инициализировать следующим образом:
NSRange HEADER_VERSION = {0, 4};
или
NSRange HEADER_VERSION = {.location = 0, .length = 4};
Подробнее см. Назначенные inits раздел руководства gcc для более подробной информации