Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone MKMapView覆盖在appDidBecomeActive上重置_Iphone_Ios_Mkmapview_Mapkit - Fatal编程技术网

Iphone MKMapView覆盖在appDidBecomeActive上重置

Iphone MKMapView覆盖在appDidBecomeActive上重置,iphone,ios,mkmapview,mapkit,Iphone,Ios,Mkmapview,Mapkit,我有一个地图视图,上面有一堆覆盖图。当我按下home(主页)按钮并重新打开它时,所有覆盖物都会消失一秒钟,然后立即重新出现。起初我以为是我的代码在做这件事,但我几乎在所有地方都设置了断点,我的代码似乎都没有触发“重置”。即使是mapView:viewForOverlay:在覆盖重新出现之前也不会被调用 我认为这可能是MKMapView不可避免的行为,但似乎Maps.app也不能做到这一点-如果你计算路线并退出/重新打开应用程序,覆盖层会一直留在那里 我在想,也许MKMapView会在退出时默认清

我有一个地图视图,上面有一堆覆盖图。当我按下home(主页)按钮并重新打开它时,所有覆盖物都会消失一秒钟,然后立即重新出现。起初我以为是我的代码在做这件事,但我几乎在所有地方都设置了断点,我的代码似乎都没有触发“重置”。即使是
mapView:viewForOverlay:
在覆盖重新出现之前也不会被调用

我认为这可能是
MKMapView
不可避免的行为,但似乎Maps.app也不能做到这一点-如果你计算路线并退出/重新打开应用程序,覆盖层会一直留在那里

我在想,也许MKMapView会在退出时默认清除所有注释/覆盖,这样在保持背景的同时占用更少的内存。有没有办法避免这种情况?有点像Maps.app吗


编辑:我把问题放在一起演示。只需在模拟器中启动它,单击主页按钮,然后重新打开它。你会看到地图路径覆盖消失片刻。

这更多的是一个后续问题,而不是一个实际的答案,但基本上这个问题已经被苹果公司标记为一个bug。不久前,我将此作为TSI提交给苹果,并收到以下答复:

感谢您提供一个示例项目。我看你的工作没有任何问题 代码。在这一点上,我建议通过 提交一个关于重新绘制MKPolylineView的“闪烁”的bug 看着我把虫子寄给我 所以我可以用它来跟进

然后我提交了雷达#11041378

再次感谢您的错误报告。碰巧的是,我没有 此时为您解决问题。工程部仍在进行这项工作 问题,但我没有修复的时间表

我会继续,让这件事对你一直开放 11041378是开放的。如果您对其未来的状态或解决方案的状态有任何疑问,请随时回复,我将 我帮你查一下

如果您对工程有任何意见,或者想讲述 为什么这对你的处境很重要,我鼓励你 把它直接放到bug里。因为它被分配到工程部, 任何意见都将直接提交给他们

我附上了以下评论,描述了为什么这个问题对我很重要:

这个bug对我来说相当重要,因为用户希望找到 当他退出应用程序时,应用程序处于完全相同的状态。闪烁的 覆盖层(有时消失不到一秒,有时消失不到一秒) 2-3s)可能会让用户对正在发生的事情感到困惑,而他 真正想要的是立即与地图/覆盖图交互


从那以后就没有收到苹果的回音。希望这能在iOS 6中得到修复?

您使用的是arc吗?arc将在对象不使用时立即释放它们,因此当进入背景时,它们将消失,一旦使用,它们将重新出现。这只是一个想法,因为我有在后台开关上重置的视图。我使用的是ARC,但我的控制器在地图视图上持有一个
strong
引用,它本身应该在其覆盖层上持有一个
strong
引用不?我的地图工具包应用程序也做同样的事情,我认为这就是它的方式。为什么这是一个问题?@shawkinaw没有理由在应用程序重新启动时覆盖层闪烁。想象一下,如果TableView的内容在应用程序重新启动时闪烁;它会被广泛报道,可能会很快被修复。地图覆盖只是不太常见,所以这个错误没有被注意到。