【问题标题】:ReverseGeoCode and Save result in CoreDataReverseGeoCode 并在 CoreData 中保存结果
【发布时间】:2013-01-06 19:48:07
【问题描述】:

假设我在 coreData 中有 1000 个海拔和经度条目。我想对这些高度和经度进行 reverseGeoCoding 并将结果保存回 coreData 。基于以下问题,我决定将 reverseGeoCode 操作置于后台

  1. 当网络连接缓慢时,ReverseGeoCode 需要一些时间。
  2. 我们应该每分钟只使用一个地理编码请求。

我的问题是在上述情况下更新 coreData 的最佳做法是什么? - 当应用程序进入后台? (不要忘记有限的 backgroundTimeRemaining 将可用) - 或者在前台应用时在后台线程上。

简而言之,对于每个坐标,我想要 reverseGeoCoded 地址。请给出我应该遵循的方法。

【问题讨论】:

    标签: ios core-data background-process reverse-geocoding background-thread


    【解决方案1】:

    我建议为此目的保留一个单独的 ManagedObjectContext。这将防止其他 CoreData 任务的任何锁定问题,并允许您为用户的工作拥有一个 MOC。想必用户并不想仅仅因为一个无关的后台任务完成就保存他们的工作,所以他们需要自己的 MOC!

    考虑到相对较慢的查找(1/分钟),我会说在每个之后继续保存更改。

    当应用程序在后台时,您不能这样做;您需要取消任何未决的反向地理编码请求,并在您回到前台时恢复它们。但是我建议您在前台使用后台线程。

    如果您需要在其他 MOC 中使用这些对象,则通常的机制适用 - 发送通知或以其他方式让他们知道,以便他们获得新的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多