cloudkit:如何访问主要用户的属性?

时间:2015-02-10 21:22:16

标签: swift nsuserdefaults cloudkit

我正在尝试创建一个应用程序,其中每个用户都会有个人头像,昵称等等。

我不知道如何在cloudkit上访问用户的帐户。

我的解决方案是检索用户的AppleID,查询Cloudkit并修改用户的属性......但我想应该有更好的方法来做到这一点。他们的东西不是像NSUserDefault而是cloudkit吗?

1 个答案:

答案 0 :(得分:1)

首先必须找出userId中当前的内容。您可以通过对容器执行fetchUserRecordIDWithCompletionHandler方法来实现。然后,您可以通过在该容器上执行discoverUserInfoWithUserRecordID来获取更多(当前只有名和姓)信息。

您可以使用额外的自定义字段扩展Users表,但我不建议这样做。 Users表是一个特殊的系统表,但有一些限制。最好使用用户设置创建单独的recordType。只需将CKReference添加到users表即可轻松访问。

您还必须注意,用户可以在应用操作期间注销并使用其他iCloud帐户登录。您可以在应用程序启动后立即执行以下代码来捕获它。当然,您必须在看到NSLog的情况下实现自己的逻辑

    var ubiquityIdentityDidChangeNotificationToken = NSNotificationCenter.defaultCenter().addObserverForName(NSUbiquityIdentityDidChangeNotification, object: nil, queue: nil) { _ in
        NSLog("The user’s iCloud login changed: should refresh all user data.")
    }