我正试图从用户的iCloud帐户中提取用户的个人资料图片。我正在使用CloudKit,正在验证用户是否拥有iCloud帐户,并请求可发现性权限。我不确定这是否可能,但如果可能的话,我想知道怎么做。以下是相关代码:
验证iCloud帐户:
[[CKContainer defaultContainer] accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError *error) {
if (accountStatus == CKAccountStatusAvailable)
{
self.shouldLogin = YES;
}
else
{
self.shouldLogin = NO;
}
}];
要从他们的iCloud帐户中提取他们的个人资料图像:
[[CKContainer defaultContainer] requestApplicationPermission:CKApplicationPermissionUserDiscoverability completionHandler:^(CKApplicationPermissionStatus applicationPermissionStatus, NSError * _Nullable error) {
if (applicationPermissionStatus == CKApplicationPermissionStatusGranted)
{
[[CKContainer defaultContainer] discoverUserInfoWithUserRecordID:self.dataStore.user.userID completionHandler:^(CKDiscoveredUserInfo * _Nullable userInfo, NSError * _Nullable error) {
NSData *imageData = userInfo.displayContact.imageData;
UIImage *profileImage = [UIImage imageWithData:imageData];
self.profileImageView.image = profileImage;
}];
}
}];
您只能获得一个唯一的ID加上iCloud用户的名字和姓氏。如果你想要更多的信息,那么你必须向所有用户索取这些数据。