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