有半年多的时间远离的iOS,去做java和web了,现在再接触iOS了,写篇文章找找回来的感觉。这个错误也是网络上资源很少,所以自己想写出来。
malloc: *** error for object 0x170242490: Invalid pointer dequeued from free list *** set a breakpoint in malloc_error_break to debug
上述的报错信息就是这次的主角。
翻译的意思大致是说:
释放了一个无效的指针,类似过度释放的意思吧。
然而我是采用ARC模式的,我就纳闷了,各种google也找不出方法,最多是说资源文件中的图片问题,个人认为这纯属扯淡(不详表),而且都是转载的,千篇一律。
我遇到这个问题是在集成个推的推送之后,做了自动登录的模块。当初做推送,都是用真机测试的,后来做自动登录了,就使用模拟器了,然后就出现报错。各种网上查资料无果。后来经朋友提醒,说是不是第三方库的原因,我当时就认为不可能了,因为我第三方都没变过,我在自动登录功能还好的。后来突然想到,自己做推送,好像都是采用真机运行的,现在用模拟器了,可能真是推送的SDK出错了。
于是直接上qq问个推技术支持人员了(我公司买了vip)。然后得知,确实
是个推在模拟器上运行的产生的错误(血崩),我使用的是1.6.3-SDK。他们已经在1.6.4-SDK中修改了这个错误,但是好像还没有发布出来。
综上所述,如果用了个推,出现这个错误的,大概率和我一样了。如果没有个推的话,个人认为,应该也是第三方库的错误。
2017.6.14