我有个即时通讯应用。它包含一个UITableView。当我收到一条消息或发送一条消息时,我将消息推送到我的自定义数据源消息数组中,然后将reloadData的UITableView.During重新加载数据,然后计算单元格的预期高度。我用仪器测试性能。在时间分析器中,花在重新加载job...And上的时间最多--应该在主线程中完成。看起来unavoidable..What是一个很好的IM应用程序设计吗?如果我在主线程上花费大量时间,主线程将被阻塞,并且收到内存警告,对吗?只是想知道一些关于它的想法..。PS: IM应用是InstantMessaging应用。
发布于 2015-08-21 07:26:56
不必每次都重新加载整个表视图,但是应该使用- (void)reloadSections:(NSIndexSet *)sections或- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation重新加载包含新消息的部分(或行)。
要回答您的问题,如果主线程被长时间的操作阻塞,它不会向您发送内存警告,但是您的UI将被阻塞,从而使您的应用程序失去响应,从而影响用户体验。
https://stackoverflow.com/questions/32134559
复制相似问题