UITableView reloadData不起作用?

时间:2016-01-14 02:53:11

标签: uitableview

我尝试为IM应用程序编写测试演示,所以我设计了一个简单的UI与其他伙伴聊天:当我发送消息时,我将重新加载UITableView以显示消息,就像我收到消息一样。 问题是,当我发出消息时,UITableView将在我调用reloadData方法后刷新,但是当我收到消息它根本不起作用时,我必须向下或向上拉UITableView然后它将刷新。 我确实设置了dataSource和UITableView委托,并且我确实将IBOutlet属性与nib文件连接起来,我在调用reloadData之前检查了IBOutlet属性的值(它包含一个有效值),我确实检查了dataSource的值(当我收到消息时,它的值已更改,并且其中插入了一条消息)。 那么请告诉我它毕竟有什么问题?

1 个答案:

答案 0 :(得分:0)

非常感谢@Tim。我解释了原因并且我发现接收消息方法是由子线程调用的。所以我将源代码更改为:

dispatch_async(dispatch_get_main_queue(), ^{
        [self.tv_chat_records reloadData];
    });

它有效!