这是我的代码:
//login method
- (int) authenticateClient {
NSString *loginWeb = [NSString stringWithFormat:(@"http://192.168.118.1/login.php?uname=%@&pass=%@&submit=Log%%20In"), user, pass];
NSURL *login = [NSURL URLWithString:loginWeb];
NSData *loginData = [NSData dataWithContentsOfURL: login];
NSString *result = [[NSString alloc] initWithData:loginData encoding:NSUTF8StringEncoding];
NSMutableURLRequest *loginRequest = [[NSMutableURLRequest alloc] init];
[loginRequest setURL:login];
[loginRequest setTimeoutInterval:1];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:loginRequest delegate:self startImmediately:YES];
[connection start];
return [result integerValue];
}
我的问题是,在模拟没有网络连接时,我的应用程序冻结并且在指定的时间间隔内没有加载或超时(1 秒只是为了看看它是否有效)。
我读了一些关于立即开始强制运行当前威胁的内容,导致其他一切“暂停”,直到行动完成。
我有两个问题:
1.) 让 URL 基本上在后台运行而不是暂停所有内容的更好方法是什么?
2.) 我怎样才能得到一个真正有效的超时方法?
非常感谢!谢谢!