存储在自定义对象中的自定义对象数组的表观解析缓存问题

时间:2015-11-05 19:19:33

标签: ios parse-platform

在Parse中使用自定义对象数组似乎存在某种缓存问题。这是一个link到这个问题的简单例子。让我来描述一下裸骨应用,然后是问题:

应用

具有一个频道的简单聊天应用,只有功能显示所有消息,并添加消息。我有一个自定义类'Message'和'Chat'(存储一组Message)。消息显示在UITableView中,并且有一个按钮可以使用查询“重新加载”聊天。该查询使用'includeKey'来确保包含messages数组。当应用程序启动时,如果不存在聊天,则会创建一个带有空白消息数组的聊天。

Parse Starter Project对此应用程序的唯一更改是:Chat.swift,Message.swift,AppDelegate.swift(用于设置应用程序ID和注册子类),ViewController.swift和故事板。

问题:

查询似乎检索缓存数据(即它不会随数据中的更新而更新)。

从我的测试中,生成“聊天”对象的设备最初不会出现此问题。但是,最初未生成“聊天”对象的设备确实存在此问题。

重现此问题的步骤:

  1. 下载示例代码here
  2. 您需要两台设备。在第一台设备(设备A)上安装应用程序。请注意,当查询返回时没有生成一个“聊天”对象。仔细检查Parse Core是否生成了这个“聊天”对象。
  3. 在另一台设备上运行该应用程序(设备B)这次查询以Chat对象返回。
  4. 点击加号按钮,在设备A上添加消息,然后保存。请注意,这会保存邮件,然后重新加载查询和表。仔细检查消息是否保存在Core中。
  5. 在设备B上重新加载表格 - 应显示消息。太好了!
  6. 在设备B上添加消息,与步骤3相同。查询应返回消息。仔细检查消息是否保存在Core中。
  7. 在设备A上重新加载表格 - 是吗?该消息未出现。三重检查邮件已保存在Core中。那是对的?为什么查询不返回呢?
  8. 抓头。
  9. 再次在Device A上构建并运行应用程序 - 现在消息确实出现了。什么?这是一个缓存问题吗?
  10. 其他诊断说明:

    在我的实际应用程序中,我实现了20条消息的限制,之后第一条消息被删除了。我注意到在我开始删除消息后,这个明显的缓存问题就停止了。

1 个答案:

答案 0 :(得分:0)

github问题解决了问题: https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/518

Parse SDK中的问题已在当前主数据库中解决,并将包含在下一版本中。