【发布时间】:2014-10-03 13:15:53
【问题描述】:
我使用NSURL 从 MySQL 数据库加载一些东西。有时这很慢,应用程序停止运行,因为数据库没有响应。
我想我可以暂停一下,所以在例如之后3 秒后,应用停止加载 NSURL 并再次尝试或执行其他操作,例如 UIAlertView。
请帮帮我! 珍妮丝
PS:我使用这段代码从数据库中加载这些东西:
-(void) loadSomething {
NSError *error;
NSString *urlString = @"http://someip/App/somefile.txt";
NSURL *url = [NSURL URLWithString:urlString];
@try {
NSString *resultString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
}
@catch (NSException *exception) {
NSLog(@"Error");
}
【问题讨论】:
-
Jannes 您是否考虑过异步下载图像,并让应用程序负责 UI?
-
正如 Smiles 所说,异步执行此操作。永远不要阻塞主线程。顺便说一句,一旦你使用
NSURLConnection或NSURLSession或AFNetworking或其他任何东西,你也可以控制超时间隔,但因为你现在是异步执行的,你不会真正关心它和默认值超时可能没问题。 -
在 NSURLConnection 中是否有任何方法,它会在出错时重试或在一段时间后无响应?