gpt4 book ai didi

objective-c - NSUInteger 不应该在格式字符串中使用吗?

转载 作者:IT老高 更新时间:2023-10-28 11:44:14 26 4
gpt4 key购买 nike

这是我的全部代码:

[NSString stringWithFormat:@"Total Properties: %d", (int)[inArray count]];

这让我收到了 Xcode 5.1 警告:

Values of type 'NSUInteger' should not be used as format arguments; add an explicit cast to 'unsigned long' instead

好吧,我很困惑。该值确实是 32 位 int,我将其转换为 32 位 int。那么它提示的这个 NSUInteger 是什么(我假设的计数),为什么这个 Actor 不能解决它?

最佳答案

NSUInteger 和 NSInteger 在 32 位 (int) 和 64 位 (long) 上的长度不同。为了使 one 格式说明符适用于 both 架构,您必须使用 long 说明符并将值转换为 long:

Type    Format Specifier    Cast
---- ---------------- ----
NSInteger %ld long
NSUInteger %lu unsigned long

因此,例如,您的代码变为:

[NSString stringWithFormat:@"Total Properties: %lu", (unsigned long)[inArray count]];

真的很少有工作要做,因为 Xcode 的 Fix-It 功能会自动为您完成。

关于objective-c - NSUInteger 不应该在格式字符串中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com