【发布时间】:2016-09-22 16:31:19
【问题描述】:
我已经使用表格视图创建了一个基本的聊天应用程序。当我的用户点击“发送”按钮将消息传递给另一个用户时,我希望此 tableview 刷新,以便实时显示消息。也就是说,我放置 [self.tableView reloadData] 的位置目前似乎没有完成工作。见以下代码:
- (IBAction)sendReply:(id)sender {
NSMutableDictionary *nodeData = [NSMutableDictionary new];
[nodeData setObject:@"messages" forKey:@"type"];
NSDictionary *messageValues = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:self.replyText.text, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]];
NSDictionary *finalMessage = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:messageValues] forKey:@"und"];
[nodeData setObject:finalMessage forKey:@"body"];
NSString *otherUID = [self.messageData objectForKey:@"targetuser"];
NSString *userValue = otherUID;
NSDictionary *targetMessage = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:userValue, nil] forKeys:[NSArray arrayWithObjects:@"value", nil]];
NSDictionary *finalUser = [NSDictionary dictionaryWithObject:[NSArray arrayWithObject:targetMessage] forKey:@"und"];
[nodeData setObject:finalUser forKey:@"field_targetuser"];
[nodeData setValue: @"Re:" forKey:@"title"];
NSString *uid = [[[DIOSSession sharedSession] user] objectForKey:@"uid"];
[DIOSNode nodeSave:nodeData success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self.tableView reloadData];
MessageSentViewController *sentView = [[MessageSentViewController alloc] init];
[self presentViewController:sentView animated:YES completion:nil];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Node did not save!");
}];
}
【问题讨论】:
-
[self.tableView reloadData];正在执行中? -
@Mr.UB 如果它正在执行,它不应该更新我的tableView吗?例如。当一条新消息发布到我的服务器并执行 reloadData 时,它应该在我的 tableView 中显示新帖子吗?
-
您是否正在使用当前数据更新您的阵列?我认为表格正在重新加载,但数据没有。
-
@Mr.UB 啊哈有趣。我认为重新加载 tableView 会自动更新数组。我应该插入一行代码来更新数组吗?
-
@Mr.UB 完成 - 谢谢! :)
标签: ios objective-c uitableview