任何人:
我想用一个宏来打印log, following,
#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 *’”。
请问如何修改?
最佳答案
您可以将参数显式转换为 int
以避免该警告:
NSLog(@"----No : %d", (int)parameter);\
关于ios - 格式指定类型 'int' 但参数的类型为 'NSString *',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22470241/