#objective-c #enums #initialization #default-value #ivar
#objective-c #перечисления #инициализация #значение по умолчанию #ivar
Вопрос:
У меня есть enum
такой:
typedef enum {
ThingA,
ThingB,
ThingC
} MyType;
У меня есть класс с ivar, объявленный в интерфейсе следующим образом:
@property (nonatomic) MyType myTypeIvar;
В настоящее время значением по умолчанию для myTypeIvar является ThingA (поскольку ThingA находится на 0-й позиции в перечислении). Каков наилучший способ сделать значение по умолчанию для myTypeIvar ThingB ?
Одним из решений является простое изменение порядка определения enum (поместите thingbв 0-ю позицию). Другим решением является установка myTypeIvar в init
методе. Однако метод init не существует (и когда он добавляется, он никогда не вызывается).
Комментарии:
1. Итак, вы планируете использовать это свойство без его правильной инициализации?
Ответ №1:
Каков наилучший способ сделать значение по умолчанию для myTypeIvar ThingB ?
Установите значение myTypeIvar
to ThingB
в назначенном вами инициализаторе, то есть инициализаторе, который, как ожидается, будут вызывать все другие инициализаторы. Например, если рассматриваемый класс является подклассом UIViewController, вы бы переопределили -initWithNibName:bundle:
, потому что это назначенный инициализатор для UIViewController.