【发布时间】:2013-10-19 06:29:10
【问题描述】:
在我的 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 抱怨:“提供给类似函数的宏调用的参数太多”。
【问题讨论】:
标签: ios objective-c macros c-preprocessor