Obj-C:跨类别的typedef?

3
我想为几个类定义一种通用枚举类型。我可以做以下几点:
  • 1 在一个类中创建该typedef,并使其他类从该类继承

  • 2 为每个类都创建该typedef

  • 3 在NSObject中创建一个分类,并在其中定义该typedef。

虽然第一个选项不需要重复--而且我认为这是三个选项中最好的--但仅为了一个枚举类型而创建一个全新的类似乎并不正确,这是一种反模式吗? 是否有更好的方法呢?

1个回答

4
通常会这样做:
#ifndef SomeEnum_enum
#define SomeEnum_enum

typedef enum {
    SomeEnumOne,
    SomeEnumTwo,
    SomeEnumThree
} SomeEnum;

#endif

你需要将枚举定义放在.h文件中,可以是类中的一部分,也可以是一个专门用于枚举的独立文件或者是分类,实际上这并不重要。

现在,你可以把它放在任何地方,只需包含.h文件即可。


是的。只需将其放入头文件中,然后从需要它的任何类中 #import 即可。C 中的 typedefs 不以任何方式限定于 Objective-C 类。 - ipmcc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接