我怎样才能清除MKMapView的地图块的caching?

我正在研究一个基于MKMapView的iPhone / iPad地图应用程序,该应用程序覆盖了我自己的基本地图,即使在用户离线时无法访问Google的地图磁贴服务器,也可以提供一些有限的function。

此function正在工作 – 但我很难在每个新版本之后进行testing,因为我找不到刷新/重置iOS地图切片caching的方法。 iOScaching甚至可以在iOS设备重启和重启的情况下保存下来。 我以前放大的任何地方都会在之前的testing会话中使用内存中的贴图进行渲染。

有没有办法强制iOS刷新其地图caching? 现在我唯一能想到的方法就是每次需要testing的时候刷新操作系统。

谢谢!

顺便说一句:这几乎是这个问题的重复,但在这种情况下,问题不是testing一个空的caching,而是释放内存。 那里给出的答案集中在RAM问题上,而不是我在这里遇到的同样的问题。

尝试在创buildMKMapView任何实例之前将NSURLConnectioncaching大小设置为零

  NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; [NSURLCache setSharedURLCache:sharedCache]; [sharedCache release]; 

这可能会使您的连接停止存储caching的数据,因为caching剩余大小将始终不足

我偶然发现了这个问题,这当然是一个有趣的问题。 显然,MKMapView正在将磁贴保存到某个地方(因为它在重新启动后仍然存在)。 我想知道是否有一个潜在的解决scheme将1)findcaching的瓷砖保存的地方,然后2)程序启动时以编程方式删除caching。 这将需要越狱设备给你的应用程序沙箱外的文件访问。 显然不适合分发,但testing大概是可以接受的。

也就是说,当我遇到这个问题时,我只是实现了自己的平铺地图视图,并运行可达性testing来确定是否显示谷歌地图或离线模式。

我们还没有find从应用程序中清除MKMapViewcaching的方法,但是您可以在Settings \ General \ Reset中“重置所有内容和数据”。 虽然这并不理想,但实际上只需要几分钟的时间,比“重新刷新操作系统”要快得多。 重置后,您还设置了设备并重新加载应用程序,但这也需要几分钟的时间。