CloudKit,检索用户信息,例如注册时的名字

时间:2016-07-10 09:37:00

标签: swift cloudkit

在我的应用程序的SignUp期间,我想从iCloud检索信息,例如名字,然后我想将它存储在我自己的云套件数据库中。如何从iCloud访问用户信息,而无需向用户询问这些相关字段?

3 个答案:

答案 0 :(得分:11)

我能够在XCode 8 iOS 10 beta 2中使用它:

CKContainer.default().requestApplicationPermission(.userDiscoverability) { (status, error) in
            CKContainer.default().fetchUserRecordID { (record, error) in
                CKContainer.default().discoverUserIdentity(withUserRecordID: record!, completionHandler: { (userID, error) in
                    print(userID?.hasiCloudAccount)
                    print(userID?.lookupInfo?.phoneNumber)
                    print(userID?.lookupInfo?.emailAddress)
                    print((userID?.nameComponents?.givenName)! + " " + (userID?.nameComponents?.familyName)!)
                })
            }
        }

答案 1 :(得分:2)

CKContainer.discoverUserIdentity(withUserRecordID:)CKContainer.fetchUserRecordID结合使用,为当前用户获取CKUserIdentity个对象。然后,您可以使用PersonNameComponentsFormatter从身份的nameComponents属性中获取其名称。

答案 2 :(得分:1)

cout << "Date :" << t.at(i).getDate << endl;