没有名字的NS_ENUM

时间:2016-05-31 13:40:58

标签: objective-c cocoa enums

我的代码中这行是正常的:

typedef NS_ENUM(NSInteger,  unused_name)
{   k_a = 123,
    k_b = 123,
    k_c = 61
};

但以下几行并非如此。编译器抱怨NS_ENUM的变量(...)部分不包含任何变量。

NS_ENUM(NSInteger)
{   k_a = 123,
    k_b = 123,
    k_c = 61
};

我对CF_ENUM也有同样的问题。

我认为这不是头文件(Foundation/NSObjCRuntime.h或Core Foundation)的问题。

1 个答案:

答案 0 :(得分:0)

查看 header{ background-image: url("img/bodyBackground.png") }标题文件中的评论:

NSObjCRuntime.h

简而言之,如果您的枚举未命名,请不要使用/* NS_ENUM supports the use of one or two arguments. The first argument is always the integer type used for the values of the enum. The second argument is an optional type name for the macro. When specifying a type name, you must precede the macro with 'typedef' like so: typedef NS_ENUM(NSInteger, NSComparisonResult) { ... }; If you do not specify a type name, do not use 'typedef'. For example: NS_ENUM(NSInteger) { ... }; */ 。此外,请确保在任何Objective-C接口或实现块之外的文件的顶部或底部声明枚举。

typedef