Я новичок в 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. Может ли кто-нибудь помочь мне решить эту проблему. Любая помощь приветствуется.
'[bubbleData1 AddObject: newdata33];' не должен ли это быть без 33? Итак, '[bubbleData1 addObject: newdata];' – adrian
Вы делаете что-то асинхронно и должны вернуться к основному потоку? – adrian
Как очистить все асинхронные задачи, вернитесь в основной поток? не могли бы вы рассказать мне. –