gpt4 book ai didi

objective-c - NSNumber限制?

转载 作者:行者123 更新时间:2023-12-01 18:25:53 25 4
gpt4 key购买 nike

NSNumber允许的最高int是多少?我在这些论坛的其他地方都看到了答案,因此为什么我在这里深感困惑。

int miles = 35000;
vehicle.mileage = [NSNumber numberWithInt:miles];
NSLog(@"int value = %d", miles);
NSLog(@"mileage = %@", vehicle.mileage);

输出为:
int value = 35000
mileage = -30536

我必须在这里错过一些可怕的难事,但是有人可以向我解释为什么这不能正常工作吗?

更新:
进一步查看后,vehicle.mileage正确设置为35000,但是当我通过NSLog(@“%@”,vehicle.mileage)显示此值时,它输出错误。当它停止工作时,我还没有找到“魔术”值,因为到目前为止,它适用于高达30,000的值。

最佳答案

NSNumber只是一个包装器,因此当包装的基本类型进入溢出状态时,它会进入溢出状态。
因此,如果使用numberWithInt,则允许的最大数量为INT_MAX(在limits.h中定义),如果使用numberWithFloat,则允许的最大数量为FLOAT_MAX,依此类推。
因此,在这种情况下,您不会溢出,我怀疑INT_MAX会这么低。

关于objective-c - NSNumber限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13831061/

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