何かをログに記録するたびに情報を追加するためだけに 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をパラメータでフォーマットするために何かをしなければならないと思いますが、どうすればいいですか??
事前にありがとう