在准备提交新的应用时,发现地图在不停切换到导航的时候,会出现很大概率的闪退。后经我们通宵的寻找终于找到原因是因为野指针。我是利用僵尸对象来实现监控每次生成对象的dealloc,出现这原因就是对象提前释放掉了,成为了野指针。
僵尸模式调试步骤:
1、 在 Xcode 菜单 Product ->Scheme-> EditScheme -> Diagnostics 设置窗口中直接勾上Enable ZombieObjects 和 Malloc Stack即可
(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;