gpt4 book ai didi

ios - Objective C 整数数学错误 (2200 - 100 = 1800) - 不知道为什么

转载 作者:行者123 更新时间:2023-11-28 18:32:52 25 4
gpt4 key购买 nike

我正在开发一个使用 NSInteger 计算打开和关闭次数的 IOS 项目。时间在 2200 读取,相当于晚上 10 点。我想看看关闭时间是否在一个小时内,所以我将整数(有效)的真实世界时间与关闭时间 - 100 进行了比较,但数学计算不符合预期。

自定义类:

@property (assign) NSInteger *sus;
@property (assign) NSInteger *sue;

在 Controller 中:

custom_class *location = object
resultINT = real world time in Integer with 24 hr

NSLog(@"Result INT: %i", resultInt);
NSLog(@"location.sue: %i", location.sue);
NSLog(@"Location - 1hr %i", location.sue -100);
NSInteger *yellowEnd = location.sue - 100;
NSLog(@"Yellow %i", yellowEnd);

结果:

2014-07-13 18:23:51.269 Time-Genesis-Marcus[7591:416078] Result INT:   1823
2014-07-13 18:23:51.269 Time-Genesis-Marcus[7591:416078] location.sue: 2200
2014-07-13 18:23:51.269 Time-Genesis-Marcus[7591:416078] Location - 1hr 1800
2014-07-13 18:23:51.270 Time-Genesis-Marcus[7591:416078] Yellow 1800

为什么第三行和第四行没有返回2100?谢谢

最佳答案

你在做指针运算而不是整数运算。

将您的代码更改为此以解决问题

@property (assign) NSInteger sus;
@property (assign) NSInteger sue;

有关您得到的结果的解释,请阅读 Pointer Arithmetic

基本上 (int *)2200 - 100 结果 2200 - 100 * sizeof(int) 其中 sizeof(int) 是 4

关于ios - Objective C 整数数学错误 (2200 - 100 = 1800) - 不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24728485/

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