message sent to deallocated instance 0x154eec600

在准备提交新的应用时,发现地图在不停切换到导航的时候,会出现很大概率的闪退。后经我们通宵的寻找终于找到原因是因为野指针。我是利用僵尸对象来实现监控每次生成对象的dealloc,出现这原因就是对象提前释放掉了,成为了野指针。

僵尸模式调试步骤:

   1、 在 Xcode 菜单 Product ->Scheme-> EditScheme -> Diagnostics 设置窗口中直接勾上Enable ZombieObjects  和 Malloc Stack即可

      2、 Product -> Scheme >Edit Scheme>Arguments>Environment Variables下面添加

   (1) NSZombieEnabled                =    YES

   (2) MallocStackLoggingNoCompact =    YES

   (3) MallocStackLogging                    =   YES

    3、再次运行程序,发生奔溃如果爆[XXXX reain]:message sent to deallocated instance 0x154eec600


解决办法:因为我的是[PCMapViewController reain]:message sent to deallocated instance 0x154eec600

所以我在PCMapViewController这类中写入-(void)dealloc{

   self.searchVC.delegateSearch = nil;
    self.searchVC.delegateBack = nil;

 ( 注: 在这里面把所有你定义的delegate全部置为nil,记住是delegate,xxx.delegate=nil)

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值