0

好的。所以我正在创建这个应用程序,除了一件事之外,我对它真的很满意。它使用了大量的互联网数据库检查等,每次执行此操作时都会挂起,直到完成,破坏了界面的流畅性。有没有办法避免这种情况?当您单击按钮或有时只是由于 NSTimer 的结果时,会发生下载内容。我希望用户能够流畅地通过界面,并且应用程序能够在信息到达那里时更新信息。有没有办法做到这一点?

编辑 - 当前同步代码:这是下载 CSV 文件:

NSString *link=[[NSString alloc] initWithFormat:@"http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=%@&callback=YAHOO.Finance.SymbolSuggest.ssCallback",timer.userInfo];
NSURL *url=[[NSURL alloc] initWithString:link];
NSData *dl=[[NSData alloc] initWithContentsOfURL:url];
NSString *str = [[NSString alloc] initWithData:dl encoding:NSUTF8StringEncoding];

这是将 png 文件下载到 webView 中:

NSString *link=[[NSString alloc] initWithFormat:@"http://chart.finance.yahoo.com/z?s=%@&t=GOOG&q=m",self.Input.text];
url=[[NSURL alloc] initWithString:link];
[self.graph loadRequest:[NSURLRequest requestWithURL:url]];
4

1 回答 1

5

听起来您正在发出同步请求。你不应该在主线程上这样做。您最好的选择可能是切换到异步请求。您可以在后台线程上发出同步请求,但在大多数情况下这更加复杂且不必要。

于 2012-09-04T15:41:10.187 回答