我需要在UITableView中显示整个朋友列表的头像图片。
我还可以问这个问题进入Quickblox论坛,但似乎他们的支持在那里反应较少。
我已阅读Quickblox文档但无法找到获取用户头像图像的有效方法。我只看到[QBContent TDownloadFileWithBlobID]
,但我不知道如何使用它。
我正在使用chatContactListDidChange
委托调用获取联系人,如下所示。现在我怎么能得到所有这些用户'头像还有?
请注意,friendsArray是我的表视图的数据源,所以理想情况下我想将头像图像存储为同一个数组的一部分。
- (void)chatContactListDidChange:(QBContactList *)contactList
{
NSLog(@"contact list changed");
NSLog(@"current contact list %@", [QBChat instance].contactList);
[self fetchContacts:[QBChat instance].contactList.contacts];
}
- (void) fetchContacts : (NSArray *) contactArray
{
NSMutableArray * userIDArray = [[NSMutableArray alloc] init];
for (QBContactListItem * contact in contactArray)
{
NSString * userIDString = [NSString stringWithFormat:@"%ld", (unsigned long)contact.userID];
[userIDArray addObject:userIDString];
}
if (!userIDArray.count)
{
return;
}
NSString * requestString = [userIDArray componentsJoinedByString:@","];
[QBUsers usersWithIDs:requestString delegate:self context:@"FetchFriends"];
}
- (void)completedWithResult:(Result *)result context:(void *)contextInfo
{
if([result isKindOfClass:[QBUUserPagedResult class]])
{
NSString * context = (__bridge NSString *)contextInfo;
// Success result
if(result.success)
{
QBUUserPagedResult * pagedResult = (QBUUserPagedResult *)result;
if ([context isEqualToString:@"FetchFriends"])
{
if (friendsArray)
{
[friendsArray removeAllObjects];
}
else
{
friendsArray = [[NSMutableArray alloc] init];
}
QBUUser * user = [pagedResult.users objectAtIndex:0];
//user.blobID
friendsArray addObjectsFromArray:pagedResult.users];
}
}
else
{
NSLog(@"Error getting users: %@", context);
}
}
}
答案 0 :(得分:1)
使用QBUUser的字段 - customData 用于用户图像的公共网址, blobID 用于上传的blob。
图片 - > [QBContent TUploadFile ...] - >获得带有结果的回调(QBCFileUploadTaskResult) - >获得blob(QBCBlob) - >将blob id保存到user.blobID - >获取您图片的公开网址:[currentBlob publicURL] - >保存到user.customData - >更新用户:[QBUsers updateUser ...] 希望它可以帮到你。