2013-10-09 42 views
0

我想自動生成的字符串這樣cover.image_size(300x400)
動態密鑰
IMAGE_SIZE靜態字符串
動態數
動態數
如何用#define生成字符串?

我想用#define

#define WADImageSize(Key,Height,Width) (Key @".image_size" @"("Height @"x" [email protected]")") 

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

這項工作很好,但我想用變量 「封面」, 「高度」 和 「寬度」

我嘗試財產以後liek這個//#定義DLogW(FMT,... )(FMT ## VA_ARGS),但沒有工作..

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

任何幫助嗎?


+0

所以這個宏的輸出是一個常量'NSString'? – trojanfoe

+2

爲什麼不使用WADImageSize函數而不是宏 –

+0

我猜他不會工作,因爲它必須做的事情太多。 – Shebuka

回答

1

嘗試此(從水晶球代碼):

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

定義大多用於常量。可能像這樣的方法會更好。

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

還記得你不能調試定義。

+0

'NSUInteger'和'%d'? – trojanfoe