我有enum
这样:
typedef enum {
ThingA,
ThingB,
ThingC
} MyType;
我有一个在接口中声明了ivar的类,如下所示:
@property (nonatomic) MyType myTypeIvar;
目前myTypeIvar的默认值是ThingA(因为ThingA在枚举中处于第0位)。 制作myTypeIvar ThingB默认值的最佳方法是什么?
一种解决方案是简单地重新排序枚举定义(将ThingB置于第0位)。另一种解决方案是在init
方法中设置myTypeIvar。然而,init方法不存在(当它被添加时,它从未被调用过。)
答案 0 :(得分:4)
制作myTypeIvar ThingB默认值的最佳方法是什么?
在指定的初始值设定项中将myTypeIvar
的值设置为ThingB
,即所有其他初始值设定项都应调用的初始值设定项。例如,如果有问题的类是UIViewController的子类,则覆盖-initWithNibName:bundle:
,因为这是UIViewController的指定初始化程序。