假设我在.h文件中声明了一个typedef:
typedef enum {
JSON,
XML,
Atom,
RSS
} FormatType;
Run Code Online (Sandbox Code Playgroud)
我想构建一个将typedef的数值转换为字符串的函数.例如,如果邮件[self toString:JSON]已发送; 它会返回'JSON'.
该函数看起来像这样:
-(NSString *) toString:(FormatType)formatType {
//need help here
return [];
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果我尝试这种语法
[self toString:FormatType.JSON];
Run Code Online (Sandbox Code Playgroud)
要将typedef值传递给方法,我收到一个错误.我错过了什么?
是否可以编写一个返回其参数数量的C宏?
我想做的事情:
foo(1) -> 1
foo(cat, dog) -> 2
foo(red, green, blue) -> 3
Run Code Online (Sandbox Code Playgroud)
如果可以以这样的方式定义这个宏以便它与##一起工作,那就更好了
foo(1) -> bar1(1)
foo(cat, dog) -> bar2(cat, dog)
foo(red, green, blue) -> car3(red, green, blue)
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑:我真的想要一个宏,而不是一个函数.使用功能的建议将被低估.