在我的应用程序中,我必须维护与云工具包专用数据库同步的本地持久性存储。因此,我只想知道如何处理可能发生的帐户更改。

我的困惑如下:
说现在一组记录属于用户A,如果用户B登录到同一部电话,则我可以执行以下两项操作:

  • 也忽略用户,也让数据同步到B帐户,但是那样A的数据也将同步到B的私有(private)帐户。自从将CKRecord编码的字段保存到数据库以来,这里的记录更改标记和所有内容都有些困惑。
  • 我可以维护一个用户表,并将每个记录链接到以这种方式记录的用户数据分开的用户。因此,我应该与所有记录一起维护一个用户字段吗?

  • 除了上述两点之外,如何最好地解决这一问题。

    最佳答案

    当然,您可以在本地持久性存储中添加userID来个性化所有记录。另一种机制是在检测到更改时删除所有本地数据并获取用户数据。如果要将用户数据保留在设备上,则还可以为每个用户创建单独的数据存储。

    您可以通过在应用程序委托(delegate)或根 View Controller 中添加以下代码来检测更改的登录名:

    NSNotificationCenter.defaultCenter().addObserverForName(NSUbiquityIdentityDidChangeNotification, object: nil, queue: nil) { _ in
         /// remove local data and fetch user data
    }
    

    您还应该刷新内存中所有与用户相关的数据,并刷新已加载的 View 。

    关于ios - CloudKit : How to handle account changes with local persistent store?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32985913/

    10-14 22:12
    查看更多