我试图包装 NSLog 函数只是为了在每次记录某些内容时添加一些信息,但是我遇到了问题。
NSLog 声明是
void NSLog(NSString *format, ...) __attribute__((format(__NSString__,1,2)))
这允许在调用中有多个参数
NSLog(@"first %@ second %@ third %d,string,string,number);
我的声明功能类似
void LogUtil(id sender, int level, NSString *str, ...) __attribute__((format(__NSString__,3,4)))
并且实施只是
void LogUtil(id sender, int level, NSString *str, ...){
if(level>=LEVEL){
NSLog(@"<%@> %@",sender,str);
}
}
所以我可以称之为
NSLog(self, 1, @"first %@ second %@ third %d,string,string,number);
但在这种情况下,不会评估属性。
所以,我想我必须在我的实现中做一些事情来用参数格式化 str 但是如何呢?
提前谢谢