iOS 数值越界bug

这个bug怎么发现的呢?

由于是个人开发,一直以来没有打测试包,直接跑真机或者模拟器,没有出现过这个bug,直到。。。老板说要安卓的小伙伴给他打个测试包,我想着,我也打个测试包试下,于是,bug 就出来了。。。

我先选的debug + development 模式打的包,能安装,注册登录都可以,就是内页有几个页面,本来有数据的,却没数据。

我想着是不是打包的方式不对啊,又打了个 release + adHoc的包,咦,也一样呢。

细看代码,代码里的接口啥的没有区分debug和release模式,于是问了下后台,后台说我数据传错了。。。

那就奇怪了,抓包看下,哦哦。。。抓不到,而且我们传的数据啥的也都是转换成了data格式的。

跟iOS开发的同学讨论了下,有小伙伴说,你看下release 模式下跑真机有没有问题呢?果然有问题。。。这就好办了!

比较了下debug和release模式下传的数据:

long index = (long)pow(2,63)-1;

在debug 环境下是9223372036854775806

在release 环境下是 1535670225581

数值越界了!

变成 long long

long long index = (long long)pow(2,63)-1;  不行

加个 unsigned:OK了!!!

unsigned long long index = (unsigned long long)pow(2,63)-1;

这个找bug原因的过程有点意思,记录下??

原文地址:https://www.cnblogs.com/kimiyo/p/9681568.html

时间: 2024-10-09 23:30:49

iOS 数值越界bug的相关文章

java--由一道选择题研究数值越界

原题来自牛客网的java专项练习: 以下是代码. 1 public class Test2 { 2 public static void add(Byte b) 3 { 4 b=b++; 5 } 6 public static void main(String[] args) 7 { 8 Byte a =127; 9 Byte b =127; 10 add(++a); 11 System.out.print(a+" "); 12 add(b); 13 System.out.print(

快速定位iOS线上BUG在哪个控制器崩溃

快速定位iOS线上BUG在哪个控制器崩溃 快速定位iOS线上App崩溃在哪个控制器里面,需要和后台配合使用 下载本项目并添加手动添加到项目里 新建所有的页面都继承于YZViewController 在AppDelegate的didFinishLaunchingWithOptions方法里面写下如下代码: if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"BUG"] isKindOfClass:[NSDictionary

iOS开发常见BUG和一些小技巧(ps:耐心看完,很实用)

[385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Created by beyond on 15/6/6. // Copyright (c) 2015年 beyond.com All rights reserved. // 不一定要用继承,可以使用分类 #import MyScrollView.h #import CoView.h @implementation MyScrollView - (void)touchesBegan

字符串数组越界bug(2)

概述 数组下标从0开始,虽然从初学都已经知道,<陷阱与缺陷>反复强调,而在指尖运动中,就有那么几次不小心,让"精子"掉进这个"洞里"!其次,C语言字符串必须以0收尾! bug: 1-动态malloc或静态分配size大小字符串,存储size个字符,导致无0收尾,逾越警戒线,站在悬崖边了! 2-动态malloc或静态分配size大小字符串,访问或设置 [ size ] 字符 3-动态malloc或静态分配size大小字符串,没有初始化,导致无0收尾,读取整

ios 最新系统bug与解决——微信公众号中弹出键盘再收起时,原虚拟键盘位点击事件无效

最近ios发布新版本系统12.1,随着部分用户的系统更新,一些问题也渐渐暴露出来... 公司用户反映微信公众号出现了点击无效的bug!!测试调查发现,只有iphonex.iphone6,ihpone7等部分机型会出现该问题 我当时就是一惊,一般出现在事件上的问题都是疑难杂症.何况是跟键盘相关的. 我们都知道在H5端是没法监控键盘的弹出与收起的,resize事件触发的机型极其有限,何况我在ios中实测没有触发,安卓反而可以.因为安卓弹起键盘时会修改视窗的大小,但是ios并不会,如果你在ios上设置

ios 键盘弹起bug,出现的问题,光标穿透,页面无法点击

有时候使用ios输入键盘以后,直接点击页面按钮会出现事件无效. 解决方法: 1. 输入框输入后点击提交按钮后,弹窗会发现光标穿透问题 解决方法: 使用input blur()事件使input失去焦点 $('.btn').on('tap',function(){ $("input").blur(); }) 2.事件失效 抬起键盘后点击页面弹出窗口后,事件失效,页面无交互,点击无效果,滑动以后才有能再次点击 解决方法: 侦听input事件失去焦点效果,然后修改body的scrollTop,

iOS开发之Bug

前言:收集在开发和学习的过程中遇到的bug. 1.循环利用cell的ID设置位置写错了.导致程序奔溃. 2.对于除数算法,可以直接算出结果的就写上结果,不要偷懒写式子让计算机自己算,更何况是除数,会有算出无限小数的可能性. 3.更改连线好的属性名,别忘了重新连线,否则会出现容易看不出来的bug 4.slider不断的调用相关的方法和刷新,这个方法如果传递的参数可能比较占内存,比如某个对象,传递过程可能会跟不上slider的刷新速度,这里就需要对其进行处理,或者是另寻它法. 5.对于工程中有很多很

iOS红马甲项目Bug总结(2)

背景:iOS调用相机和访问图库 一.调用相机或图库: -(void)imgviewClick { ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus]; AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; UIAlertController *alertvc=[

iOS 数组越界 Crash处理经验

我们先来看看有可能会出现的数组越界Crash的地方: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { WelfareItem *item = [_datasourceArray objectAtIndex:indexPath.row];//有可能会越界,你在下拉刷新时会用[_datasourceArray removeAllObjects],这时你又点了某个