Значения по умолчанию для ivars с типом enum в Objective-c - PullRequest
1 голос
/ 04 октября 2011

У меня есть enum, как это:

typedef enum {
    ThingA,
    ThingB,
    ThingC
} MyType;

У меня есть класс с иваром, объявленным в интерфейсе следующим образом:

@property (nonatomic) MyType myTypeIvar;

В настоящее время значением по умолчанию для myTypeIvar является ThingA (поскольку ThingA находится в 0-й позиции в перечислении). Какой лучший способ сделать значение по умолчанию для MyTypeIvar ThingB?

Одним из решений является просто переупорядочить определение enum (поместите ThingB в 0-ю позицию). Другое решение - установить myTypeIvar в методе init. Однако метод init не существует (и когда он добавлен, он никогда не вызывается).

1 Ответ

4 голосов
/ 04 октября 2011

Каков наилучший способ сделать значение по умолчанию для myTypeIvar ThingB?

Установите значение myTypeIvar в ThingB в указанном вами инициализаторе, то есть в инициализаторе, который используется всеми другими инициализаторами.Ожидается позвонить.Например, если рассматриваемый класс является подклассом UIViewController, вы должны переопределить -initWithNibName:bundle:, потому что это назначенный инициализатор для UIViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...