Эти строки в порядке в моем коде:NS_ENUM без имени
typedef NS_ENUM(NSInteger, unused_name)
{ k_a = 123,
k_b = 123,
k_c = 61
};
Но следующие строки не являются. Компилятор жалуется, что переменная (...) части NS_ENUM не содержит никакой переменной.
NS_ENUM(NSInteger)
{ k_a = 123,
k_b = 123,
k_c = 61
};
У меня такая же проблема с CF_ENUM.
Я думаю, что это не проблема заголовочного файла (Foundation/NSObjCRuntime.h
или Core Foundation).
Я написал ответ, но похоже, что вы все делаете правильно. Просто убедитесь, что ваши объявления перечисления находятся за пределами любого интерфейса Objective-C или блоков кода реализации. – JAL
У вас нет NS_ENUM без имени. Имя становится именем typedef, которое будет использоваться для NS_ENUM. Использование не уникального имени, такого как «unused_name», приводит к неприятностям. Не указывать имя вообще не получится. И это не проблема с заголовком - это проблема с вашим кодом. Вы делаете что-то неправильно, и компилятор говорит вам. – gnasher729
@ gnasher729 Если мне не хватает чего-то, у вас может быть NS_ENUM без имени (например, второй блок кода в вопросе). Он просто отображается как 'enum' в завершении кода Xcode. –
JAL