我是 iOS 新手,我正在开发聊天应用程序,我尝试通过 XMPP 接收消息并将接收到的消息传递给聊天表视图(UIBubbleTableView)。但是当我尝试在表视图数组中添加该消息时,数组变为空,因此数据不会添加到表视图中。
当我尝试在 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 方法中获取新消息,但不会添加到气泡表视图中。谁能帮我解决这个问题。任何帮助表示赞赏。