2012-12-22 116 views
0

我正在研究需要从我的服务器以JSON或XML格式加载数据的iPhone应用程序。由于该应用程序是免费的,我获得大量的数据,并且在启动应用程序时由于长时间加载数据而崩溃。所以我明白,我不应该一次得到“全部”的JSON,但我必须加载数据“分页”[一点点] ..修改回购以异步获取JSON

我发现这个项目,适合我的需要,但不能更迭,改性为我的需要:

https://github.com/nmondollot/NMPaginator

项目tooks Twitter的API作为数据源,如果我需要处理返回JSON格式的数据一个简单的PHP文件?

nb:我试图修改后试图联系项目开发者,但直到现在才得到答案。

谢谢。

+0

你为什么不只是加载数据asynchrounously呢? – 2012-12-22 11:50:25

+0

你有一个示例项目或教程显示如何做到这一点? – hafedh

回答

0

最简单的解决方案可能是在另一个线程下载数据。这可以通过很多方式完成,但一种方式是使用大中央调度(GCD)。

像这样的事情

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ 
    NSURL *url = [NSURL URLWithString:@"Your_URL"]; 
    NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
    [NSURLConnection sendAsynchronousRequest:req 
             queue:[NSOperationQueue currentQueue] 
          completionHandler: 
    ^(NSURLResponse *res, NSData *data, NSError *err) { 
     // Convert the data to appropriate object 
     NSString* myString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
//You would probably deserialize the json here 
//self.tableViewArray = serialiedObjects; 
       
     dispatch_async(dispatch_get_main_queue(), ^{ 
      //Reload table view 
      [self.tableView reloadData]; 
     }); 
    }]; 
}); 
+0

好的,谢谢,请你解释一下,在我的项目中我使用数据来填充tableview,假设JSON数据是一个字典数组,每个字典将被用于表视图中的一个单元格,怎么可以我使用你的代码,并重新加载tableview,因为我得到新的数据? – hafedh

+0

更新了答案 – johan