在我的 IOS 项目中,我有一个包含该函数的自定义 Logger 类(单例)
- (void)log:(NSString *)domain logLevel:(int)level logMessage:(NSString *)message
通过以下预处理器宏全局可用:
#define MyLog(domain, level, message) [[MyLogger sharedInstance] log:domain logLevel:level logMessage:message]
现在当我打电话时:
MyLog(@"common", LL_ERROR, @"There was an error!");
一切正常。但实际上,logMessage 有时会包含字符串占位符。所以最大的问题是:我怎样才能让我的宏接受这样的调用
MyLog(@"common", LL_ERROR, @"There was an error: %@", [error debugDescription]);
使用当前的解决方案,Xcode 抱怨:“为类似函数的宏调用提供了太多参数”。