Как я могу получить изображение из 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