gpt4 book ai didi

ios - 如果 AddAnnotations 未完成,应用程序崩溃

转载 作者:行者123 更新时间:2023-12-01 19:24:48 24 4
gpt4 key购买 nike

我有一个应用程序,它是一个 SplitViewController,左侧有一个主视图,右侧有一个详细 View 。其中一个 View (分支查找器)是一个 map View ,可将一系列注释加载到 map 中。

如果我在切换到任何其他 View 之前让注释加载(加载注释需要 1 秒),那么一切都很好。但是,如果用户在加载注释时快速关闭分支查找器 View ,则应用程序将崩溃并显示以下通知:

[BranchFinder_iPad respondsToSelector:]: message sent to deallocated instance 0x807d230



现在,我的想法是,当用户离开 BranchFinder_iPad View 时,释放的实例将引用包含所有正在释放并设置为零的注释的数组(在 View 的标题中声明)。这是传递给 addAnnotations 方法的数组。
[self.mapView addAnnotations:branchSites];

是否有其他人遇到过这样的问题:在添加分配的中途离开 View ,如果用户移动到另一个 View ,则会发生崩溃。

只是为了澄清:
  • 如果我等待注释加载,切换到任何其他 View 都不会出现问题。
  • 我确实有一个自定义注释 View ,但我从我的代码中删除了它(以从混合中消除它)。这样做并没有改变任何东西。
  • 我在其他地方寻求过有关此问题的帮助,但很多关于 map View 的 View 教程都是单一 View ,因此没有出现此问题。
  • 我发现了一个类似的问题@以下:mapkit addAnnotations crashes
  • 最后,我刚刚跳到 x-code 4。我认为我的一些问题只是因为我正在重新学习一些我应该知道的东西。

  • 问候,
    弥敦道

    PS:我想附上一张图片,但遇到了麻烦。我没有本地的声誉点,而且我的工作场所不允许我访问任何图像托管门户。今天晚些时候我会努力添加一张图片。

    最佳答案

    嘿,任何读过这篇文章的人。

    我基本上在这里犯了一个新手错误 - 对于我的应用程序中的 MKMapView,我必须将委托(delegate)设置为 nil 作为我 View 中的释放例程的一部分。苹果文档在以下文档中提到了这一点:

    http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapViewDelegate_Protocol/MKMapViewDelegate/MKMapViewDelegate.html

    对于相关部分:

    Before releasing an MKMapView object for which you have set a delegate, remember to set that object’s delegate property to nil. One place you can do this is in the dealloc method where you dispose of the map view.



    如果我切换到另一个 View 并且在执行代码(例如 addAnnotations 例程)中仍然引用 MKMapView 时,没有这个只会导致问题。

    关于ios - 如果 AddAnnotations 未完成,应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8277126/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com