【发布时间】:2014-04-23 14:17:17
【问题描述】:
任何人:
我想用一个宏来打印日志,关注,
#define isaObject(parameter) _Generic((parameter), id: YES, id __strong: YES, default: NO)
#define kNSLog(parameter) do \
{ \
BOOL is = isaObject((parameter)); \
if (is) \
{ \
NSLog(@"----Yes : %@", parameter); \
} \
else \
{ \
NSLog(@"----No : %d", parameter); \
} \
} while (NO)
int i = 99;
NSString * s = @"abcd";
kNSLog(i);
kNSLog(s);
然后,编译器给出警告“格式指定类型 'int' 但参数的类型为 'NSString *'”。
请问如何修改?
【问题讨论】:
-
不是我推荐它,而是看这个页面,大约一半:abissell.com/2014/01/16/…
标签: ios objective-c generics macros nslog