问题1:当我们定义一个很大的数时候,会溢出,报错如下:Overflow in expression; result is -813934592 with type 'int'
如下图
溢出
原因:
每个值都是integer, 但是相乘的值超过了integer最大值(2147483647), 所以编译出错。
解决方案
//将相乘的第一个数转成long即可。
long deltaTime = 90L * 86400 * 1000;
扩展
当我们在定义宏定义时候
//1.正确做法
#define BigNumber (4000LL * 1024 * 1024 * 1024)
//2.错误做法
#define BigNumber (4000 * 1024 * 1024 * 1024)
问题2:Thread 1: Exception: "-[__NSCFString longValue]: unrecognized selector sent to instance 0x2807bae80"
本地代码解决方案
long deltaTime = 90L * 86400 * 1000;
for (NSDictionary * dic in weakSelf.historyCacheDataModelArray) {
if ([dic[@"lastTime"] integerValue] - [currentTime longLongValue]<= deltaTime) {
[weakSelf.dealHistoryArray addObject:dic[@"keyWords"]?dic[@"keyWords"]:@""];
}
}
网友评论