其实遇到好几次这个问题了,每次解决之后都不长记性,后面遇到又浪费时间,所以这次做个笔记。
最近改了点需求,然后使用Mjextension 的时候就就报错了。关键是debug模式还不会报错,每次都跑到测试那里才出现(应为我们给测试的包都是release的)。显得我们干活很不利索(手动遮脸)
先看一下报错栈

往回找,最终找到这里。

看了好久,心想怎么会错呢。然后又想:既然是内存问题,这个地方又只跟这个objs有关,应该是这个里面的对象或里面的属性提前释放了吧。抱着好奇进去看了一下ISSMessage 这对象如图:

果不其然,最近添加了一个属性taskId 一开始是NSInteger,后来后台要求是字符串,为了方便入库,我也改成NSSing,结果 忘记把assign 改成 copy 或 strong了。改回来后就好了。
其实没啥技术含量,就是粗心。浪费时间。故做此笔记。
勿喷。
网友评论