我正在学习如何使用宏,但现在对宏感到困惑。
我正在尝试创建一个NSString
连接,它只会将每个参数附加到彼此。
例如:concatOP(@"hey",@"Jude",@"Don't")
将返回一个NSString
包含:@"heyJudeDon't"
实际上,我编写了一些代码(也可以在此处找到一些代码)来获取参数的数量,但我没有成功完成工作的第二部分。
#define NUMARGS(...) ( sizeof((int[]){__VA_ARGS__}) / sizeof(int) )
#define concatOP(...) NSMutableString *format = [[NSMutableString alloc] init];\
for( int i = 0; i < NUMARGS(__VA_ARGS__); i++){\
[format appendString:@"%@"];}\
[[NSString alloc] initWithFormat:format, __VA_ARGS__]
我实际上得到了很多错误,告诉我格式不存在或者我错过了一些“;” 或其他结束标签。