0

我正在运行 Simperium 示例中包含的 SimpletodoFinal.xcodeproj。该示例运行良好,我可以看到 iOS 模拟器和连接到 Simperium 数据存储的 Web 应用程序之间同步的项目。

我添加了一些项目并确保同步更改。然后我退出 iOS 应用程序并删除该应用程序的 sqlite 数据库并再次启动该应用程序。当现有用户将新设备联机时,这似乎是用例。

我遇到的问题是应用程序是空的。远程数据不会向下同步以填充新数据库。有谁知道这可能是为什么?我是否需要在启动时触发手动同步?

谢谢你。

4

2 回答 2

0

未下载远程更改的原因是客户端认为它是最新的。首选项文件 (/Library/Preferences/com.codality.SimpletodoFinal.plist) 中有一个条目,如下所示:

lastChangeSignature-Todo : 52a22dc4ba5fdc4e28e0fa8a

我假设 Simperium 将该条目解释为意味着最新的更改已被合并到数据库中。因此,没有什么新东西可以下载。

因为首选项文件中有过时的数据,所以我的实验不能准确地代表用户使用新设备。

我关闭了应用程序,再次删除了数据库,并删除了 prefs 文件中的上述条目。然后我重新运行了该应用程序,果然,所有远程数据都已正确下载。

于 2013-12-06T20:18:15.173 回答
0

单独对 sqlite 存储进行核对可能会导致问题,因为 Simperium 还依赖几个元数据存储来确定当前的同步状态。

请尝试调用方法[simperium signOutAndRemoveLocalData:YES],这是删除所有内容的首选方法。

于 2013-12-07T17:13:52.223 回答