我正在创建一个框架,并在为该类做包装时卡住了
logger.h 具有以下方法
-(void) logError:(nonnull NSString *) info, ...;
我包装了 logger.h 文件名 Mlogger.h
包装文件 Mlogger.h 具有相同的原型
-(void) logError:(nonnull NSString *) info, ...;
我的 Mlogger.m 文件的实现方式为
-(void) logError:(nonnull NSString *) info, ... {
va_list args;
va_start(args, info);
[[Logger sharedManager] logError:info];
//LogError(info,args); //also tried with macro
va_end(args);
}
宏在 logger.h 中定义:
#define LogError(format, ...) [[Logger sharedManager] logError:format , ##__VA_ARGS__ ];
我已导入包装器类 Mlogger.h ,并执行类似的调用
[logger logDebug:@"Initialized successfully"];
[logger logDebug:@"URL: %@",@"www.google.com"];
第一行打印完美,但第二行打印 URL:记录器:0x604000226cc0 ..
预期输出为 URL:www.google.com
我的实现是否正确?而不是我该如何传递 可变参数?