【问题标题】:Where to declare an enum struct?在哪里声明一个枚举结构?
【发布时间】:2009-11-05 14:36:08
【问题描述】:

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

@implementation PostQuestionScene

enum popUpItems{ 
 kExpiredBox, 
 kPauseBackground
};

vs..

enum popUpItems{ 
 kExpiredBox,
};

@implementation PostQuestionScene ..

【问题讨论】:

    标签: objective-c enums


    【解决方案1】:

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

    typedef enum { 
     kExpiredBox, 
     kPauseBackground
    } popUpItems_t;
    

    然后创建它的实例。

    popUpItems_t popUpItems;
    

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

    【讨论】:

    • #typedef enum 是怎么回事?你不是说typedef enum吗?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-20
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多