前言
开发中经常因为各种业务理解不清或粗心大意造就一些低级又影响很大或排查很久的bug,记录提醒自己多注意
1、修改代码时没有debug数据看修改逻辑是否正确,只是简单的满足UI正确,小概率有可能开发环境测试环境巧合这个问题被隐藏了
具体经过:
在修改一个sdk时,有个逻辑是合并两个数据源,由于我自己对该模块不是特别熟,但改了几天后又盲目自信,看着属性名就按该属性名进行去重合并,在开发环境和测试环境验证的时候没什么问题,等节将上线时突然爆出了订单都重复显示了一遍,由于我自己改的代码立马联想检验修改的地方,果然是该处去重的字段使用的不对,如此低级的错误居然没有在调试的时候认真照着数据debug,只是看看页面效果OK了,结果几乎这一个bug导致上线取消,影响很大
2、在项目中加载图片使用了多种方式加载图片,部分图片或文件没有在xcode右侧勾选正确的
Target Membership
的
具体经过
项目中使用了好多张类似的图片,但加载图片发现只有一张图片怎么加载都是nil,检查发现图片是存在的,对比很久发现和其他图片也没有什么区别,等后面仔细比较,发现是该图没有勾选Target Membership
3、iOS12真机在使用NSUserDefaults获取值时,key如果为nil会卡死崩溃的问题
具体经过:
崩溃的原因
[[NSUserDefaults standardUserDefaults] objectForKey:nil]
另一个卡死的原因,就是不断频繁的调用
[[NSUserDefaults standardUserDefaults] objectForKey:xxx]
4、对
dispatch_suspend
、dispatch_resume
没有成对调用导致dealloc方法里crash
GCD定时器的释放与程序崩溃的问题
网友评论