Objective-c中具有枚举类型的ivars的默认值

时间:2011-10-04 17:46:24

标签: objective-c enums initialization default-value ivar

我有enum这样:

typedef enum {
    ThingA,
    ThingB,
    ThingC
} MyType;

我有一个在接口中声明了ivar的类,如下所示:

@property (nonatomic) MyType myTypeIvar;

目前myTypeIvar的默认值是ThingA(因为ThingA在枚举中处于第0位)。 制作myTypeIvar ThingB默认值的最佳方法是什么?

一种解决方案是简单地重新排序枚举定义(将ThingB置于第0位)。另一种解决方案是在init方法中设置myTypeIvar。然而,init方法不存在(当它被添加时,它从未被调用过。)

1 个答案:

答案 0 :(得分:4)

  

制作myTypeIvar ThingB默认值的最佳方法是什么?

在指定的初始值设定项中将myTypeIvar的值设置为ThingB,即所有其他初始值设定项都应调用的初始值设定项。例如,如果有问题的类是UIViewController的子类,则覆盖-initWithNibName:bundle:,因为这是UIViewController的指定初始化程序。