Simperium和处理同步任选

时间:2012-08-15 19:09:26

标签: simperium

当用户可以随时选择启用或禁用同步时,处理同步的最佳方法是什么?

具体来说,我目前遇到的问题是Simperium在其实例被解除分配后崩溃了。请考虑以下情形:

  1. 创建数据库并插入一些对象
  2. 创建Simperium实例,登录并同步所有离线创建的对象
  3. 退出(意味着释放Simperium实例)
  4. 创建更多对象
  5. 应用程序现在崩溃:

    -[__NSCFString objectsShouldSync]: unrecognized selector sent to instance

    其中__NSCFString是一些已经发布的旧对象

    我正在使用当前的主分支。

2 个答案:

答案 0 :(得分:0)

这是一个常见的请求,“iosupdate”分支有一些有用的更改。您可以查看this GitHub issue获取一些指导。总结(引用这个问题的作者):

初始化simperium实例时,请设置以下属性:

self.simperium.authenticationOptional = YES;

这会显示取消按钮。

self.simperium.authenticationEnabled = NO;

这可以防止弹出身份验证对话框。

self.simperium.loginViewControllerClass = [LoginViewController class]; 这将放入SPLoginViewController的自定义子类中以覆盖cancel:消息,否则您将无法获得用户取消对话框的反馈。

当用户点击“登录”按钮时,我设置

self.simperium.authenticationEnabled = YES;

导致登录控制器显示。

答案 1 :(得分:0)

我知道这是一个老问题,但我花了很多时间尝试这个并且无法在任何地方找到任何指针......

以上回答是正确的,但我在设定后找到了

self.simperium.authenticationEnabled = YES;

我需要添加

[self.simperium authenticateIfNecessary];

以显示登录视图。