从 iCloud 帐户访问用户个人资料图片

Accessing user profile picture from iCloud account

我正在尝试从用户的 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 用户的名字和姓氏。如果您需要更多信息,则必须向所有用户询问该数据。