ohh*_*hho 10 macos xcode objective-c ios
NSInteger precedence = [self operatorPrecedence];
[d appendFormat:@"precedence:%d, ", precedence];
Run Code Online (Sandbox Code Playgroud)
得到:
警告:Format指定类型'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
Run Code Online (Sandbox Code Playgroud)
对于32位和64位目标,杀死警告的最佳方法是什么?
Kur*_*vis 12
对于NSInteger,使用%ld并将值转换为long.
[d appendFormat:@"precedence:%ld, ", (long)precedence];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3431 次 |
| 最近记录: |