修改repo以异步获取JSON

时间:2012-12-22 11:33:16

标签: json web-services

我正在开发一款需要以JSON或XML格式从我的服务器加载数据的iPhone应用程序。由于应用程序是免费的,我获取了大量数据,因为加载数据的时间很长,我在启动应用程序时会崩溃。所以我明白我不应该立即获得“全部”JSON,但我必须[逐点]加载数据“

我发现这个项目很适合我的需求,但无法根据我的需要修改它:

https://github.com/nmondollot/NMPaginator

该项目采用Twitter api作为数据源,如果我需要处理一个返回JSON格式数据的简单php文件怎么办?

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

感谢。

1 个答案:

答案 0 :(得分: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];
         });
     }];
});