我正在开发一个使用NSInteger计算开启和关闭的IOS项目。在2200读取的时间相当于晚上10点。我想知道是否有一些东西在关闭后的一个小时内,所以我将整数(工作)的实际世界时间与结束时间 - 100进行比较,但数学并没有按预期工作。
自定义类:
@property (assign) NSInteger *sus;
@property (assign) NSInteger *sue;
在控制器中:
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?感谢
答案 0 :(得分:5)
您正在进行指针运算而不是整数运算。
将您的代码更改为此问题以解决问题
@property (assign) NSInteger sus;
@property (assign) NSInteger sue;
有关您获得的结果的解释,请阅读Pointer Arithmetic
基本上(int *)2200 - 100
结果2200 - 100 * sizeof(int)
sizeof(int)
为4