2014-10-27 2 views
0

Мне нужно отобразить изображения аватаров списка друзей внутри UITableView.Quickblox - выбор аватаров друзей пользователей и отображение внутри 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

поле Использовать QBUUser в - CustomData для публичного URL изображения пользователя и blobID Загруженного сгусток.

Изображение -> [QBContent TUploadFile ...] -> Получение обратного вызова с результатом (QBCFileUploadTaskResult) -> получение blob (QBCBlob) -> сохранение идентификатора blob для user.blobID -> получение общедоступного URL-адреса ваше изображение: [currentBlob publicURL] -> сохранить в user.customData -> обновить пользователя: [QBUsers updateUser ...] Надеюсь, это вам поможет.

+0

отличная идея .. попробуем и отметьте правильный. –

Смежные вопросы