NSInteger precedence = [self operatorPrecedence];
[d appendFormat:@"precedence:%d, ", precedence];
给出:
警告:格式指定类型“int”,但参数的类型为“NSInteger”(又名“long”)
并且 Xcode 建议更改%d
为%ld
.
但是,它仅适用于 32 位或64 位目标,如下NSInteger
所示:
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
对于 32 位和 64 位目标,消除警告的最佳方法是什么?