在哪里声明枚举结构?

时间:2009-11-05 14:36:09

标签: objective-c enums

这只是出于好奇,但是当我声明一个枚举类型时,将它放在实现声明中还是在它之外更好?什么是最佳做法?例如:

@implementation PostQuestionScene

enum popUpItems{ 
 kExpiredBox, 
 kPauseBackground
};

VS ..

enum popUpItems{ 
 kExpiredBox,
};

@implementation PostQuestionScene ..

2 个答案:

答案 0 :(得分:4)

我倾向于总是有一个typedef,所以它就像另一个变量:

typedef enum { 
 kExpiredBox, 
 kPauseBackground
} popUpItems_t;

然后创建它的实例。

popUpItems_t popUpItems;

如果你将在该模块之外使用它,将typedef放在标题中,这样当包含标题时,其他模块可以使用typedef(例如,如果需要将它作为参数),否则放入它在实现中(想想公共/私有变量。)

答案 1 :(得分:2)

我认为它没有任何技术差异。我会把它放在@implementation之前(以及所有其他杂项声明),除非它只用在一个或一小组方法中,在这种情况下我会把它放在那些方法之前。

当然,如果它可能被客户端或子类使用,它应该在您的头文件中(@interface所在的位置),以便定义对他们可见。