Как я могу получить изображение из XMPP?

Я хочу получить изображение аватара пользователя из XMPP, для этого я делаю:

let photoData: NSData = (self.xmppvCardAvatarModule?.photoDataForJID(XMPPJID.jidWithString(onlineBuddies[indexPath.row] as! String)))!
cell.avatarImage.image = UIImage(data: photoData)

но он возвращает мне следующую ошибку:

fatal error: unexpectedly found nil while unwrapping an Optional value

когда я напечатаю это:

XMPPJID.jidWithString(onlineBuddies[indexPath.row] as! String)

он печатает мне имя пользователя, но целая строка возвращает мне ноль:

self.xmppvCardAvatarModule?.photoDataForJID(XMPPJID.jidWithString(onlineBuddies[indexPath.row] as! String))

Как я могу это исправить?

1 ответ

Я рекомендую использовать так:

[self.vCardTempModule fetchvCardTempForJID:[XMPPJID jidWithString:phoneNumber] ignoreStorage:YES];

и обрабатывать фото в делегате

- (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule
    didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp
                 forJID:(XMPPJID *)jid
 {
    NSString * base64OfImage =  [[vCardTemp elementForName:@"PHOTO"]stringValue];
 }

также есть другой способ получить объект UIImage от другого делегата, я рекомендую посмотреть документацию по vCard

-(void)xmppvCardAvatarModule:(XMPPvCardAvatarModule *)vCardTempModule didReceivePhoto:(UIImage *)photo forJID:(XMPPJID *)jid
Другие вопросы по тегам