gpt4 book ai didi

ios - 对于一个IM应用,如果我频繁reloadData,会不会是主线程被阻塞了?如果是,有什么好的方法解决吗?

转载 作者:行者123 更新时间:2023-11-29 10:26:14 25 4
gpt4 key购买 nike

我有一个 IM 应用程序。它包含一个 UITableView。当我收到消息或发送消息时,我将消息推送到我的自定义数据源消息数组,然后重新加载 UITableView 的数据。在重新加载数据期间,我计算单元格的预期高度。我使用 Instruments 测试性能。而在 Time profiler 中,大部分时间都花在了重新加载工作上……而且应该在主线程中完成。似乎这是不可避免的.. IM 应用程序的良好设计是什么?如果我在主线程中花费大量时间,主线程将被阻塞,并且收到内存警告,对吗?只是想知道一些关于它的想法..PS:IM 应用程序是即时消息应用程序。

最佳答案

你不必每次都重新加载整个 TableView ,但你应该只使用 - (void)reloadSections:(NSIndexSet *)sections 重新加载包含新消息的部分(或行)- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

要回答您的问题,如果主线程被长时间操作阻塞,它不会向您发送内存警告,但您的 UI 将被阻塞,使您的应用无响应,从而影响用户体验。

关于ios - 对于一个IM应用,如果我频繁reloadData,会不会是主线程被阻塞了?如果是,有什么好的方法解决吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32134559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com