我需要帮助确定在我的应用中实施缓存的最合适和最方便的方法,以便它提供下面描述的行为。
应用程序需要显示对象列表A.它显示来自缓存的对象,同时从服务器请求更新的列表版本。如果请求成功,则缓存的对象将完全被返回的对象替换。然后刷新呈现给用户的列表。
现在,我通过拥有一个名为DataManager
的类的专用单例来实现此行为,该类包含ApiClient
的一个实例(向服务器发送请求)和{的一个实例{1}}(基本上是一组访问Core Data对象的便捷方法)。 CacheProvider
中的每个方法都是这样的:
DataManager
但我有一种感觉,我正在重新发明轮子,必须有一些标准的方法来使用RestKit获得相同的行为。我是对的,还是应该继续使用我的方法?
答案 0 :(得分:1)
我会使用NSFetchedResultsController
来显示结果。它不关心它们是否cached
,它只是使用数据存储中的内容并观察其中的更改(因此您不需要自己的回调块)。
RestKit提供了一个名为fetch request blocks
的功能,它不是一个好名字,但你用它来删除数据存储中的孤立对象 - 即所有旧的缓存对象。
使用这两种方法可能会大量减少您需要编写的自定义代码量。