これが私のコードです:
//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 秒) でロードまたはタイムアウトしないことです。
私は、アクションが完了するまで他のすべてを「一時停止」させ、現在の脅威を実行するためにすぐに強制的に開始することについて何かを読みました。
2 つの質問があります。
1.) すべてを一時停止するのではなく、基本的に URL をバックグラウンドで実行するためのより良い方法は何ですか?
2.) 実際に機能するタイムアウト メソッドを取得するにはどうすればよいですか?
大感謝!ありがとう!