我有一个这样的enum
:
typedef enum {
ThingA,
ThingB,
ThingC
} MyType;
我有一个在接口中声明了一个ivar的类,像这样:
@property (nonatomic) MyType myTypeIvar;
目前myTypeIvar的默认值是ThingA(因为ThingA在enum中位于第0位)。什么是最好的方法来使myTypeIvar ThingB的默认值?
一个解决方案是简单地重新排序枚举定义(将ThingB放在第0个位置)。另一个解决方案是在init
方法中设置myTypeIvar。然而,init方法不存在(当它被添加时,它永远不会被调用)。
让myTypeIvar ThingB默认值的最好方法是什么?
在指定的初始化器中设置myTypeIvar
的值为ThingB
,即所有其他初始化器都期望调用的初始化器。例如,如果有问题的类是UIViewController的子类,你会重写-initWithNibName:bundle:
,因为那是UIViewController的指定初始化器。