Objective c UITableView CellforRowAtIndex路径更新缓慢

Objective c UITableView CellforRowAtIndex路径更新缓慢,objective-c,uitableview,Objective C,Uitableview,在我的iOS应用程序中,我有一个带有原型单元格的UITableView。每个单元格显示一条文本消息,并有一个标签,用于显示与该消息关联的注释数。目前,在cellforrowatinedexpath中,我正在服务器上查询一个数组,该数组包含与消息相关的注释,然后将标签设置为数组。计数。但是,在滚动表时,这会导致注释计数在瞬间不准确,因为每当屏幕上出现新的单元格时,cellforrowatinexpath必须查询服务器,因此有时标签将临时显示另一条消息的注释计数(旧的原型单元格),而新的注释计数仍在

在我的iOS应用程序中,我有一个带有原型单元格的
UITableView
。每个
单元格
显示一条文本消息,并有一个
标签
,用于显示与该消息关联的注释数。目前,在
cellforrowatinedexpath
中,我正在服务器上查询一个
数组
,该数组包含与消息相关的注释,然后将
标签设置为
数组。计数
。但是,在滚动
表时,这会导致注释计数在瞬间不准确,因为每当屏幕上出现新的
单元格时,
cellforrowatinexpath
必须查询服务器,因此有时
标签将临时显示另一条消息的注释计数(旧的原型单元格),而新的注释计数仍在加载。此问题的最佳解决方案是什么?

您必须在表视图的后台发出服务器请求,通过导入
dispatch/dispatch.h
然后使用此代码来执行此操作

//in the cellForRowAtIndexPath; method
dispatch_queue_t bg = dispatch_queue_create("com.you.test", NULL);
dispatch_async(bg, ^{
    //get stuff from server
});

cellForRow…
中,你能做的最糟糕的事情是进行网络呼叫。没有连接的用户会发生什么情况,或者更糟糕的是,连接速度非常慢?你需要在后台加载一次数据。在
viewDidLoad
中启动它。然后在有数据时重新加载表。那么你是说在viewDidLoad中我应该查询为表中显示的每条消息创建一个注释服务器,然后本地存储该信息,然后让单元格引用该本地信息?是的,这基本上就是您想要的。将单元格的代码放入RowAtIndexPathHMM…因此,如果表中有100个单元格,这意味着我应该为这些单元格的对应项创建100个本地数组丁评论?这听起来很低效。。。