
NSInteger precedence = [self operatorPrecedence];[d appendFormat:@"precedence:%d,",precedence];
得到:
Warning: Format specifIEs type ‘int’ but the argument has type
‘NSInteger’ (aka ‘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位目标,杀死警告的最佳方式是什么?
解决方法 关注 the instructions in Apple’s 64-Bit Transition Guide.对于NSInteger,使用%ld并将值转换为long.
[d appendFormat:@"precedence:%ld,(long)precedence];总结
以上是内存溢出为你收集整理的ios – %d格式化为32位和64位全部内容,希望文章能够帮你解决ios – %d格式化为32位和64位所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)