如何上传用户个人资料图片以及如何从其他用户设备获取该个人资料图片?

我有一个要求,可以说有3个用户为我的应用程序。 我想为每个用户添加一个图像(configuration文件图片用途),以便其他两个使用相同应用的用户可以看到该图像。 就像whatsappconfiguration文件图片。 所以为此我做了以下的事情。

步骤1: 以User1login,然后添加此代码以上传图像文件。 在用User1凭据login后,我在上传文件时将公有属性设置为YES。

NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"arrow.png"]); [QBRequest TUploadFile:imageData fileName:@"arrow.png" contentType:@"image/png" isPublic:YES successBlock:^(QBResponse *response, QBCBlob *blob) { } statusBlock:^(QBRequest *request, QBRequestStatus *status) { } errorBlock:^(QBResponse *response) { }]; 

步骤2: 以User2login

然后,我确实喜欢这个我正在抓取属于我的应用程序的所有用户。 运用

 QBGeneralResponsePage *responsePage = [QBGeneralResponsePage responsePageWithCurrentPage:currentPage perPage:perPage]; [QBRequest usersForPage:responsePage successBlock:^(QBResponse *response, QBGeneralResponsePage *page, NSArray *users) { weakSelf.allUsers = [users mutablecopy] [weakSelf.tableView reloadData]; } errorBlock:^(QBResponse *response) { }]; 

第3步:现在我有所有的用户,所以我正在做迭代来find用户blob id。

  QBUUser *user = (QBUUser *)self.allUsers[indexPath.row]; if (user.blobID != 0) { [QBRequest downloadFileWithID:user.blobID successBlock:^(QBResponse *response, NSData *fileData) { UIImage *img=[UIImage imageWithData:fileData]; [cell.imageView setImage:img]; } statusBlock:^(QBRequest *request, QBRequestStatus *status) { } errorBlock:^(QBResponse *response) { }]; } 

但问题是在这里我没有得到任何blobID User1的意思是user1的blobID为0 (所有用户blobID为0),但上传它是成功的,我上传文件使用User1login后blobID。

但是当我以user2或User3身份login时,它不显示与user1相关的任何blobID。 上传时,我将“公开”设为“是”。 这是正确的做法或我做的任何错误,请让我知道?

您应该在blob上传后使用QBUpdateUserParameters的请求更新用户的blobID:

  [QBRequest TUploadFile:imageData fileName:@"arrow.png" contentType:@"image/png" isPublic:YES successBlock:^(QBResponse *response, QBCBlob *blob) { QBUpdateUserParameters *userParams = [QBUpdateUserParameters new]; userParams.blobID = blob.ID; [QBRequest updateCurrentUser:userParams successBlock:^(QBResponse * _Nonnull __unused response, QBUUser * _Nullable user) { } errorBlock:^(QBResponse * _Nonnull response) { }]; } statusBlock:^(QBRequest *request, QBRequestStatus *status) { } errorBlock:^(QBResponse *response) { }];