1

我有一个enum这样的:

typedef enum {
    ThingA,
    ThingB,
    ThingC
} MyType;

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

@property (nonatomic) MyType myTypeIvar;

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

一种解决方案是简单地重新排序枚举定义(将 ThingB 放在第 0 位)。另一种解决方案是在init方法中设置 myTypeIvar。但是 init 方法不存在(并且当它被添加时它永远不会被调用)。

4

1 回答 1

4

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

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

于 2011-10-04T17:49:00.500 回答