我正在运行Simperium样本中包含的SimpletodoFinal.xcodeproj。该示例工作正常,我可以看到iOS模拟器和连接到Simperium数据存储的Web应用程序之间同步的项目。
我添加了一些项目并确保更改已同步。然后我退出iOS应用程序并删除应用程序的sqlite数据库并再次启动应用程序。这似乎是现有用户在线使用新设备时的用例。
我遇到的问题是应用程序是空的。远程数据未同步以填充新数据库。谁知道为什么会这样?我是否需要在启动时触发手动同步?
谢谢。
答案 0 :(得分:0)
未下载远程更改的原因是客户认为它是最新的。首选项文件中有一个条目(/Library/Preferences/com.codality.SimpletodoFinal.plist),如下所示:
lastChangeSignature-Todo:52a22dc4ba5fdc4e28e0fa8a
我假设Simperium将该条目解释为意味着最新的更改已经合并到数据库中。因此,没有什么新东西可以下载。
由于首选项文件中存在陈旧数据,因此我的实验并不能准确反映用户启用新设备的情况。
我关闭了应用程序,再次删除了数据库,并删除了prefs文件中的上述条目。然后我重新运行了应用程序,当然,所有远程数据都已正确下载。
答案 1 :(得分:0)
单独使用sqlite存储可能会导致问题,因为Simperium还依赖于几个元数据存储来确定当前的同步状态。
请尝试调用方法 [simperium signOutAndRemoveLocalData:YES] ,这是删除所有内容的首选方法。