ios – %d格式化为32位和64位

ios – %d格式化为32位和64位,第1张

概述NSInteger precedence = [self operatorPrecedence];[d appendFormat:@"precedence:%d, ", precedence]; 得到: Warning: Format specifies type ‘int’ but the argument has type ‘NSInteger’ (aka ‘long’) 而Xcode建议将
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位所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1096541.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存