私はiOSが初めてで、XMPPを介してメッセージを受信し、受信したメッセージをチャットテーブルビュー(UIBubbleTableView)に渡そうとするチャットアプリケーションに取り組んでいます。しかし、そのメッセージをテーブル ビュー配列に追加しようとすると、配列が null になるため、データがテーブル ビューに追加されません。
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 メソッドで新しいメッセージを取得できますが、バブル テーブルビューに追加されません。誰でもこの問題を解決するのを手伝ってくれますか? どんな助けでも大歓迎です。