【发布时间】:2015-12-24 15:32:37
【问题描述】:
在 iOS 中,我正在尝试在 uiwebview 中更新谷歌图表。我正在使用 dispatch_async(dispatch_get_global...) 来解析 json 信息。在异步调用中,我使用 dispatch_async(dispatch_get_main_queue...) 在主线程上执行 UI 元素。我仍然在屏幕上发现一些延迟,但没有 UI 挂起。请帮助我如何以更好的方式编写以下代码,以便一旦我从解析的信息中获得价值,我应该能够立即生成图表。下面是代码:
dispatch_queue_t syncInAsync=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(syncInAsync, ^{
[self parse:url];
dispatch_async(dispatch_get_main_queue(), ^{
NSString* htmlString = [NSString stringWithFormat:@"<html><head><script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"></script><script type=\"text/javascript\">google.load(\"visualization\", \"1\", {packages:[\"corechart\"]});google.setOnLoadCallback(drawChart);function drawChart() {var data = google.visualization.arrayToDataTable([['Reports', 'Value'],['Total', %@ ]]);var options = {title: 'Total Reports'};var chart = new google.visualization.PieChart(document.getElementById('piechart'));chart.draw(data, options);}</script></head><body><div id=\"piechart\" style=\" text-align: left width: 400px; height: 200px;\"></div></body></html>",number];
[_web1 loadHTMLString:htmlString baseURL:nil];
});
});
【问题讨论】:
-
能否请您出示您的
parse方法。
标签: ios json parsing asynchronous grand-central-dispatch