我从以下代码获取“未使用的参数'testString'”警告。但我使用testString来记录。那怎么没用呢?
- (void)getString:(NSString *)testString {
ICELogInfo(@"%@", testString);
}
ICELogInfo是NSLog的宏。
#define ICELogInfo(fmt, ...) LOG_FORMAT(fmt, @"INFO", ##__VA_ARGS__)
#define LOG_FORMAT(fmt, lvl, ...) LOG_FORMAT_NO_LOCATION(fmt, lvl, ##__VA_ARGS__)
#define LOG_FORMAT_NO_LOCATION(fmt, lvl, ...) NSLog((@"%@ " fmt), lvl, ##__VA_ARGS__)
我做错了什么?
答案 0 :(得分:5)
你没有做错事。这是使用宏时的常见问题。
如果您想要摆脱警告,可以使用此代码作为解决方法:
- (void)getString:(NSSTring*) __unused testString {
ICELogInfo(@"%@", testString);
}
答案 1 :(得分:2)
我遇到了同样的问题"之前。通过使用unused
标志来解决它。
- (void)getString:(NSString *)testString {
ICELogInfo(@"%@", testString);
#pragma unused (testString)
}
答案 2 :(得分:1)
您使用的是什么版本的Xcode?这看起来像一年多以前LLVM中的lambda捕获错误现在:
因为这些宏中的 VA_ARGS 可能会遇到该错误报告中描述的同一问题;但它应该在最近的Xcodes中解决。绝对是我现在正在运行的Xcode 5 DP 3,你的代码没有给我任何警告。