Quickblox - 获取用户朋友' UITableView中的头像和显示

时间:2014-10-27 06:31:25

标签: ios iphone uitableview quickblox avatar

我需要在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);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

使用QBUUser的字段 - customData 用于用户图像的公共网址, blobID 用于上传的blob。

图片 - > [QBContent TUploadFile ...] - >获得带有结果的回调(QBCFileUploadTaskResult) - >获得blob(QBCBlob) - >将blob id保存到user.blobID - >获取您图片的公开网址:[currentBlob publicURL] - >保存到user.customData - >更新用户:[QBUsers updateUser ...] 希望它可以帮到你。