dispatch_async上的UI冻结(向uitableview添加新行)

时间:2014-07-09 05:13:47

标签: ios objective-c uitableview

当用户滚动到结尾时,我正在尝试将新行加载到UITableView的末尾。当用户这样做时,我想调用XML URL Web服务并从hayoola中获取新数据。

一切运作良好,现在添加了新行,但每隔几秒就会在UITableView结束时冻结,然后解冻。

这是我用来获取和添加新行的代码:

if ((unsigned long)indexPath.row == [self.entries count] - 1){
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0),
                    ^{
                        NewsFetchParseOperation *p = [[NewsFetchParseOperation alloc]init];
                        NewsFetchAppRecord *appRecord = [self.entries objectAtIndex:indexPath.row];


                        p.cat = appRecord.Category;
                        self.intindex = self.intindex + 1;
                        p.index = [NSString stringWithFormat:@"%d", (int)self.intindex];
                        p.lastid = appRecord.ids;
                        [p main];
                        dispatch_async(dispatch_get_main_queue(), ^(void)
                                       {

                                           NSArray *temp =[self.entries arrayByAddingObjectsFromArray:p.appRecordList];
                                            self.entries = temp;
                                           [self.tableView reloadData];

                                       });
                    });

 }

0 个答案:

没有答案