【问题标题】:Ideal time to invalidate cached data in an iOS app使 iOS 应用程序中的缓存数据失效的理想时机
【发布时间】:2013-06-23 01:26:59
【问题描述】:

所以我正在开发一个 iOS 应用程序,它使用 Core Data 作为本地离线存储来存储远程服务器上的数据。像 Mail.app 保存您最近的 n 条消息的方式一样思考。现在,该应用程序非常天真地存储了所有这些数据,而不会删除任何旧数据。

我的问题是:在 iOS 应用的生命周期中,什么是处理删除缓存数据等任务的最佳时间?我已经知道如何我将删除这些旧数据,但这样做是一项昂贵的操作。所以我想知道执行这种昂贵操作的最佳时间是什么时候。

【问题讨论】:

    标签: ios caching core-data


    【解决方案1】:

    如果不是太麻烦,那么当应用程序进入后台时这样做是一个不错的时机。但是,如果需要大约 10 秒或更长时间,请务必设置后台任务以允许您运行更多时间。

    【讨论】:

    • 我在想app进入后台的时候做,后台任务是什么?
    • 后台任务是您研究的主题;)。请参阅 在后台执行有限长度任务 this page
    【解决方案2】:

    您可以使用 GCD 或 NSOperationQueue 在后台运行此操作。我会在从服务器获取新数据后执行此操作,然后删除旧缓存并构建新缓存。如果您将昂贵的操作移到后台(线程、块、NSOperation 或您喜欢的任何东西),那么最好使用子 NSMagaedObjects 进行同步。

    【讨论】:

      猜你喜欢
      • 2015-07-26
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多