CloudKit:如何使用本地持久存储来处理帐户更改?

时间:2015-10-07 07:11:36

标签: ios core-data cloudkit user-accounts

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

我的困惑如下: 假设一组记录属于用户A,如果用户B登录到同一部手机,我可以做以下两件事:

  1. 忽略用户并让数据同步到B帐户,但这样A的数据也会同步到B的私人帐户。这里记录更改标记,因为将CKRecord编码字段保存到数据库,所有这些都变得有点麻烦。

  2. 我可以维护一个用户表,并将每条记录链接到以这种方式记录的用户,这样用户数据就会被分开。那么我应该维护一个用户字段以及所有记录吗?

  3. 除了上述两件事之外,如何才能最好地处理这件事。

1 个答案:

答案 0 :(得分:2)

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

您可以通过在appDelegate或rootviewcontroller中添加以下代码来检测更改的登录信息:

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

您还应该刷新内存中的所有用户相关数据并刷新加载的视图。