我有一个Application,它是一个SplitViewController,左边是主视图,右边是详细视图。其中一个视图(Branch Finder)是一个Map视图,它将一系列Annotations加载到Map。
如果我在切换到任何其他视图之前加载注释(加载注释需要花费1秒钟),那么一切都很好。但是,如果用户快速关闭分支查找器视图,而正在加载注释,则应用程序将崩溃并发出以下通知:
[BranchFinder_iPad respondsToSelector:]:发送到解除分配的实例0x807d230的消息
现在,我的想法是,解除分配的实例将引用包含所有正在发布的注释的Array(在视图的标题中声明),并在用户离开BranchFinder_iPad视图时设置为nil。这是传递给addAnnotations方法的数组。
[self.mapView addAnnotations:branchSites];
是否有其他人在添加分配中途遇到一个问题,如果用户移动到另一个视图,则会发生崩溃。
只是为了澄清:
此致 Nathan A
PS:我想在此附上一张图片,但我遇到了麻烦。我本身没有声誉点,我的工作场所不允许我访问任何图像托管门户。我会尽力在今天晚些时候添加一张图片。
答案 0 :(得分:3)
嘿,任何读过这篇文章的人。
我基本上在这里执行了一个新手错误 - 对于我的应用程序中的MKMapView,我必须将委托设置为nil作为我视图中的释放例程的一部分。苹果文档在下面的文档中提到了这一点:
相关部分:
在发布已设置委托的MKMapView对象之前,请记住将该对象的委托属性设置为nil。您可以在dealloc方法中处理地图视图。
如果我切换到另一个视图并且在执行代码时仍然引用了MKMapView,例如addAnnotations例程,则不会导致此问题。