【问题标题】:Default values of ivars with enum type in Objective-cObjective-c 中枚举类型的 ivars 的默认值
【发布时间】:2011-11-30 21:40:46
【问题描述】:

我有一个这样的enum

typedef enum {
    ThingA,
    ThingB,
    ThingC
} MyType;

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

@property (nonatomic) MyType myTypeIvar;

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

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

【问题讨论】:

  • 所以你打算在没有正确初始化的情况下使用这个属性?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多