Cocoa touch 使用for循环将对象添加到数组中,对象不为';直到for循环完全完成,才能添加t循环

Cocoa touch 使用for循环将对象添加到数组中,对象不为';直到for循环完全完成,才能添加t循环,cocoa-touch,ios6,for-loop,Cocoa Touch,Ios6,For Loop,因此,我使用下面的代码在json数组中循环。如果json数组返回正数,我将json数组添加到另一个包含所有数组的数组中。但是,这可能需要一些时间才能完成,因为它要通过几个不同的json URL插入不同的动态信息 我编辑了下面的代码以显示更多的基本信息。我的问题是,直到for循环完成,数据才真正输入到数组中。我需要在它找到它后立即添加它,而不是在它通过所有在线频道后。计数-有什么帮助吗 for (int i = 0; i<onlineChannels.count; i++) {

因此,我使用下面的代码在json数组中循环。如果json数组返回正数,我将json数组添加到另一个包含所有数组的数组中。但是,这可能需要一些时间才能完成,因为它要通过几个不同的json URL插入不同的动态信息

我编辑了下面的代码以显示更多的基本信息。我的问题是,直到for循环完成,数据才真正输入到数组中。我需要在它找到它后立即添加它,而不是在它通过所有在线频道后。计数-有什么帮助吗

for (int i = 0; i<onlineChannels.count; i++) {
       [jsonResults addObject:[parsingJson objectAtIndex:0]];
        NSLog(@"%i",jsonResults.count);
        [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
        [self.tableView reloadData];
    } else {
        [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
        [self.tableView reloadData];
    }
}
for(int i=0;i
我的问题是,直到for循环完成,数据才真正输入到数组中

你怎么知道的

我看到您正在调用
-reloadData
,因此您可能希望更改立即反映在表中?我相信您的对象会立即添加到数组中,但更改不会立即显示在表中。
-reloadData
实际上不会重新绘制表--绘图是作为一部分进行的您可能正在主线程上运行此代码,这样做会阻止运行循环有时间重新绘制表

解决这类问题的最佳方法是将耗时的进程(如循环)移动到后台线程。这将使主线程可以根据需要重新绘制表,并使应用程序的响应速度更快


同时,当每次添加一个项目时,使表重载所有的数据,即使该项的行没有显示出来,也会显得非常浪费。请考虑调用只更新已更改表的一部分的方法。

或更好:<代码>插入式WrdStReXixPosith:RooFix:<代码>谢谢!我将检查此O。美国犹他州。