我有一个日志功能:
#define LOGERROR(err) if(err) { \
LOGTRACE(@"[NSError] %s (%d): (%d:%@) Reason: %@", \
__PRETTY_FUNCTION__, \
__LINE__, \
err.code, \
err.domain, \
err.localizedDescription) \
}
当我用
LOGERROR(playerItem.error);
我收到警告:“NSInteger 不应用作格式参数,应将显式强制转换添加到 long”。
Xcode 的自动修复在 LOGERROR 之前插入 %ld,这是错误的。
我认为这个警告来自使用__LINE__
,根据https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html返回一个 int。
我怎样才能从这个电话中删除警告?