我正在开发一款iPhone应用程序。我使用Touch Json来解析返回Json数据的PHP Web服务。在按钮的单击事件上调用Web服务。
Web服务将在近10秒内解析,但响应速度非常慢。
一旦解析了响应,就必须推送新视图。
响应将在近10秒内解析,但移动到下一个视图需要一分钟。
我需要尽快解决这个问题。
任何人都可以帮我吗?
提前致谢。
答案 0 :(得分:0)
就像基本的想法一样,你使用多线程吗?你应该实现这样的东西。
dispatch_queue_t myqueue = dispatch_queue_create("queue", NULL);
dispatch_async(myqueue, ^{
//load your Json data here ex [dataManager loadData];
dispatch_async(dispatch_get_main_queue(), ^{
//post a notification here for the table/view controller that needs to reload data
});
});
现在,您甚至可以在调用此块之前推送到新的viewcontroller,并为通知添加观察器以重新加载数据。 segue将是即时的,您的数据将在10秒后可用。
答案 1 :(得分:0)
如果你不需要在iOS 5之前支持任何东西,你甚至不需要任何第三方库来解析JSON了。你可以这样做:
NSError *jsonError = nil;
NSDictionary *response = [NSJSONSerialization JSONObjectWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableLeaves error:&jsonError];
if ( response )
{
NSString *exampleValue = [response objectForKey:@"exampleKey"];
[self.navigationController pushViewController:yourViewController animated:YES];
}
此外,正如Calin指出的那样,如果您正在处理大量数据,那么在单独的线程上进行处理会更明智。