如何使用#define生成字符串?

时间:2013-10-09 13:52:01

标签: ios objective-c

我想自动生成这样的字符串 cover.image_size(300x400)
封面动态键
image_size 静态字符串
300 动态数字
400 动态数字

我想使用 #define

#define WADImageSize(Key,Height,Width) (Key @".image_size" @"("Height @"x" Width@")")

NSLog(@" %@",WADImageSize(@"cover", @"300", @"400"));
Result will be like this **cover.image_size(300x400)**

这项工作很好,但我想使用变量“cover”,“height”和“width”

我正在尝试这样的事情// #define DLogW(fmt,...)(fmt ## VA_ARGS )但没有任何效果..

NSLog(@" %@",WADImageSize(key, height, width));

任何帮助?


2 个答案:

答案 0 :(得分:1)

试试这个(水晶球代码):

#define WADImageSize(Key, Height, Width) ([NSString stringWithFormat:@"%@.image_size(%dx%d)", Key, Height, Width])

答案 1 :(得分:1)

定义主要用于常量。可能这样的方法会更好。

-(NSString*)WADImageSizeWithKey:(NSString*)Key Height:(NSUInteger)Height Width:(NSUInteger)Width
{
    return [NSString stringWithFormat:@"%@.image_size(%ux%u)", Key, Height, Width];
}

还要记住,你无法调试定义。