core data 添加对象,过度release bug 总结。

core data 添加对象,过度release bug 总结。

现象:

在订阅按钮按下后,发生崩溃,系统给出提示:exc_bad_access。
debug代码,在添加到core data代码行之前和之后,添加断点,debug均能通过。
但是打过订阅方法执行完后报错。

原因分析:

追查添加到core data行中的内容,发现在得到core data对象中,使用了一个方法叫做newSubscribeDataEntity.该方法的作用是从core data中返回一个空的实体(自己理解的),该方法应该是autorelease,但是所在函数名用了new,造成了只有勿以为该方式是new出来的,然后对ta进行了手动的release。造成了exc_bad_access。

"debug代码,在添加到core data代码行之前和之后,添加断点,debug均能通过。" 一开始以为能够通过,所以觉得并不是添加到core data行出现的问题。目前个人觉得造成该原因可能是由于,core data与操作是在其自己独立的线程中完成,并且应该是相对main函数,有一定的延时机制。

解决方法:

1.删除手动release行代码。
2.应该修改newSubscribeDataEntity对象名称。如果不是返回以new、alloc、retain、copy实例化的对象,不要使用这些单词开头的名称。

PS:nszombie 使用 (xcode 4.xx)

edit schema -->run xx.app --> Diagnostics --> Enable Zombie Objects

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值