ios - 可以解析缓存替换核心数据

标签 ios parse-platform

我正在构建一个具有 CRUD 功能的简单联系人目录,并且我希望具有离线编辑功能。我的联系人数据库将存储在 Parse.com 后端。这是否可以使用 Parse 缓存功能,或者我求助于 Core Data 会更好吗?

最佳答案

不,它不能。 Parse 只是缓存您的查询结果。这是非常有限的,并且与缓存所有 PFObjects 不同。例如,假设您对所有“联系人”PFObjects 进行了查询。您唯一能够对缓存执行的操作是稍后再次运行完全相同的查询(并获得完全相同的结果)。您甚至无法查询该缓存数据的一个子集。

另一个问题是缓存的对象不会随着您的用户对您的 PFObjects 所做的任何更改而更新。例如,假设用户正在离线编辑联系人,而您的代码正在调用 saveEventually 以尽可能将这些更改保存到 Parse。当您获得缓存的查询结果时,用户的更改将不会反射(reflect)在您的 PFObjects 中。我相信删除和添加的 PFObjects 也是如此。这将使离线使用变得糟糕。这是 Parse 论坛中涉及此主题的帖子:

https://www.parse.com/questions/does-saving-an-object-supposed-to-update-the-local-cache-of-a-query-on-these-objects

我看到 Parse 开发人员提到在未来某个时候改进 Parse 对象的缓存。然而,这个功能还不存在,也不知道什么时候会出现。与此同时,如果你想支持离线使用,你必须使用 Core Data 或其他一些本地商店。 FTASync(我从未使用过)旨在将 Parse 对象与核心数据同步:

https://github.com/itsniper/FTASync

您也可以编写自己的代码来同步两组数据。

关于ios - 可以解析缓存替换核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19331013/

相关文章:

ios - 获取当前的主屏幕图像

objective-c - 当设备方向改变时改变 View Controller

ios - 我可以在不调整屏幕大小的情况下提交应用程序以在所有 iDevices 上工作吗?

parse-platform - request.user 在注册后的 afterSave 中为 NULL?

swift - Parse - 使用 OR 和 AND 的复合查询?

android - 解析Android getUsername() "ParseObject has no data for this key"

android - 如何在android和ios之间建立通信

javascript - 隐藏在 native 中的键盘

ios - Parse IOS SDK 中的 AND (&) 析取

android - 如何迁移解析导出的数据库?