Я использовал typedef NS_ENUM
для реорганизации констант данных в старом коде. Используя найденный здесь подход , каждый typedef
объявляется в одном файле .h
, который может быть импортирован в любой класс проекта. Содержимое файла .h помещается в сообщение компилятору. Это хорошо работает для переменных int
.
MYCharacterType.h
#ifndef MYCharacterType_h
#define MYCharacterType_h
typedef NS_ENUM(NSInteger, MARGIN)
{
MARGIN_Top = 10,
MARGIN_Side = 10,
MARGIN_PanelBaseLine = 1
};
...
#endif /* SatGamEnumType_h */
Но Xcode жалуется, когда я пытаюсь включить float
variables
"Неинтегральный тип NSNumber является недопустимым базовым типом
например.
typedef NS_ENUM(NSNumber, LINE_WIDTH) {
LINE_WIDTH_Large = 1.5,
LINE_WIDTH_Medium = 1.0,
LINE_WIDTH_Small = 0.5,
LINE_WIDTH_Hairline = 0.25
};
Я получаю то же сообщение, использую ли я NSValue
или NSNumber
, поэтому я подозреваю, что typedef NS_ENUM
не способ определить переменные float
(или, по крайней мере, так, как я его использую).
Подход в этом ответе позволил бы мне делать то, что я уже организовал в одном файле, но не предлагает способ реорганизации переменных float
в тот же файл. Может кто-нибудь объяснить, как это сделать, чтобы все переменные были определены в одном файле .h
независимо от их типа? Благодаря
РЕШЕНИЕ
Это был ответил rmaddy после того, как я подошел к вопросу по-другому.