我試圖讓我的宏像接受可變參數的NSLog()
一樣工作。下面的代碼導致解析問題。__VA_ARGS__宏擴展
什麼是定義這個的正確方法?
#define TF_CHECKPOINT(f, ...) \
do { \
NSString *s = [[NSString alloc] initWithFormat:f arguments:__VA_ARGS__] autorelease]; \
[TestFlight passCheckpoint:[NSString stringWithFormat:@"%@: %@", [self class], s]]; \
} while (0)
我不知道你怎麼個意思_variable arguments_因爲'__VA_ARGS__'已經代表了宏變量參數,這樣你就可以使用下面的宏,你會使用'的NSLog (...)'正常情況下:'#define AnotherLog(...)NSLog(__ VA_ARGS __)',之後它將成爲源代碼中的有效行:'AnotherLog(@「%d,%@」,1 ,@「text」);你最終的目標是什麼? – holex 2012-08-03 08:35:30