关于MKMapView操作过程崩溃问题

来源:互联网 发布:松下plc编程实例 编辑:程序博客网 时间:2024/06/06 05:48

转载自:舵手网络--http://www.helmsmansoft.com


在一次项目的开发过程中,用到了MKMapView地图显示,并放置打头阵的动画。在操作过程中,当地图页进入地图显示页地图没有完全加载完事(打头针没有落下插稳)的时候,如果快速切换到其它页面或对mapView进行了释放,程序就会崩溃。输出的错误如下:[****ViewController respondsToSelector:]: message sent to deallocated instance 0xc5b64e0根据错误的提示,只能看出地图类在调用某个方法时传了一个已经被释放的参数,但是根据提示的方法,在地图类中根本找不到提示传参错误的方法,也就找不出具体是哪个参数被释放了。但是根据提示的方法,可以看出,方法中的respondsToSelector:似曾相识, 对,代理中很常见的一个方法。也就是说地图在调用系统的代理方法的时候传的参数已经被释放了,所以程序崩溃。解决办法,只需要在切换界面或者释放mapView的时候将代理也至为nil即可。mapView.delegate = nil;