XZ_iOS之内存泄露exc_bad_access

时间:2023-01-17 23:01:02
  内存泄露是指一个对象或变量在使用完成后没有释放掉。如果我们走向了另外一个极端,会怎么样呢?这就导致了过度释放问题,从而使对象“僵尸化”,该对象被称为僵尸对象。如果一个对象已经被释放过了,或者调用者没有这个对象的所有权却释放了它, 就会造成过度释放,产生僵尸对象。
    对于很多人来说,  僵尸对象或许听起来很恐怖,也很陌生,但是如果说EXEC_BAD_ACCESS异常,可能大家并不陌生。应用的某个方法如果试图调用僵尸对象, 就会崩溃 (应用直接跳出),并抛出异常EXEC_BAD_ACCESS
 
今天在运行代码的过程中,发现了一个问题,就是在iOS7和iOS8的机器测试上,测试很容易出现崩溃,
崩溃信息:exc_bad_access(code=1,address=0x10)

解决方法:
1、在Edit Scheme中设置管理僵尸对象,以获取更多信息
(注意:调试完毕后必须取消勾选,因为Zombile模式不会释放内存,很危险)
XZ_iOS之内存泄露exc_bad_access

2、获取的打印信息:
XZ_iOS之内存泄露exc_bad_access

结果查找到:
在model中使用了assign修饰了copy字符串
XZ_iOS之内存泄露exc_bad_access