1
我有一個日誌功能NSInteger的警告:刪除使用__LINE__
#define LOGERROR(err) if(err) { \
LOGTRACE(@"[NSError] %s (%d): (%d:%@) Reason: %@", \
__PRETTY_FUNCTION__, \
__LINE__, \
err.code, \
err.domain, \
err.localizedDescription) \
}
當我把它與
LOGERROR(playerItem.error);
我得到一個警告:「NSInteger的不應該被用來作爲一個格式化參數,加明確演員長「。
Xcode的autofix在LOGERROR之前插入%ld,這是錯誤的。
我覺得這個警告來自使用__LINE__
,它根據https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html返回一個int。
如何從此通話中刪除警告?
我認爲它實際上對'err.code'感到惱火,它返回一個'NSInteger'。投它:'(long)(err.code)',然後在格式字符串中使用'%ld'。 – ravron 2014-11-04 19:17:08
啊,謝謝,就是這樣。只是誤解了它。 – quantumpotato 2014-11-04 19:22:30