Я хочу создать постоянный статический массив, который будет использоваться во всем моем файле реализации Objective-C, подобно чему-то подобному на верхнем уровне моего файла «.m»:
static const int NUM_TYPES = 4;
static int types[NUM_TYPES] = {
1,
2,
3,
4 };
Я планирую использовать NUM_TYPES
позже в файле, поэтому я хотел поместить его в переменную.
Однако, когда я это делаю, я получаю сообщение об ошибке
"Вариабельно измененные типы" в области файла"
Я предполагаю, что это может быть как-то связано с тем, что размер массива является переменной (я не получаю это сообщение, когда помещаю туда целочисленный литерал, например static int types[4]
).
Я хочу это исправить, но, возможно, я все делаю неправильно... У меня здесь 2 цели:
- Чтобы иметь массив, доступный по всему файлу
- Чтобы инкапсулировать
NUM_TYPES
в переменную, чтобы у меня не было одного и того же литерала, разбросанного по разным местам в моем файле
Какие-либо предложения?
[EDIT] Нашел это в C Faq: http://c-faq.com/ansi/constasconst.html
#define kNUM_TYPES 4
? - person Jorge Israel Peña   schedule 11.11.2009@"An NSString literal"
). Единственное, что не так с вашим фрагментом кода, это отсутствие необходимости в точке с запятой. - person Sam   schedule 11.11.2009