0

Я новичок в iOS, и я работаю над приложением чата, где я пытаюсь получать сообщения через XMPP и передавать это полученное сообщение в виде таблицы чата (UIBubbleTableView). Но когда я пытаюсь добавить это сообщение в массив табличных представлений, массив становится пустым, и, следовательно, данные не добавляются в представление таблицы.Данные не добавляются в UIBubbleTableView в iOS

Когда я пытаюсь сохранить некоторые жестко закодированные сообщения в этом массиве в методе viewDidLoad, он отображает это сообщение в представлении таблицы.

Ниже мой метод, который вызывается, когда есть сообщение, принятое в классе XMPP.

- (void)newMessageReceived:(NSString *)messageContent { 

NSBubbleData *newdata = [NSBubbleData dataWithText: messageContent date:  [NSDate dateWithTimeIntervalSinceNow:0] type:BubbleTypeSomeoneElse]; 
bubbleData1=[[NSMutableArray alloc]init]; 
[bubbleData1 addObject:newdata]; 
_bubbleTable.bubbleDataSource=self; 

     [_bubbleTable reloadData]; 

} 

и выше метод получает данные с использованием метода XMPP данный ценам ниже

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message { 



NSString *msg = [[message elementForName:@"body"] stringValue]; 
NSString *from = [[message attributeForName:@"from"] stringValue]; 

NSMutableDictionary *m = [[NSMutableDictionary alloc] init]; 
[m setObject:msg forKey:@"msg"]; 
[m setObject:from forKey:@"sender"]; 

ChatController *chat=[[ChatController alloc]init]; 
[chat newMessageReceived:[m valueForKey:@"msg"]]; 

} 

Я могу получить новое сообщение в методе newMessageRecieved, но не добавляется в пузырьковой Tableview. Может ли кто-нибудь помочь мне решить эту проблему. Любая помощь приветствуется.

+0

'[bubbleData1 AddObject: newdata33];' не должен ли это быть без 33? Итак, '[bubbleData1 addObject: newdata];' – adrian

+0

Вы делаете что-то асинхронно и должны вернуться к основному потоку? – adrian

+0

Как очистить все асинхронные задачи, вернитесь в основной поток? не могли бы вы рассказать мне. –

ответ

0

Необходимо ввести tableView:cellForRowAtIndexPath:.

Здесь вы должны добавить свой контент в UITableViewCell или собственный подкласс, а затем отображать ячейки.

Tutorial

+0

спасибо за предложение –