4

画面をロックするときにNSURLConnectionを実行するいくつかの方法を試しましたが、どれも機能しません。

私は次のように試しました:

[self performSelectorInBackground:@selector(startConnection) withObject:nil];

私も試しました:

dispatch_queue_t request_queue = dispatch_queue_create("com.app.download", NULL);
dispatch_async(request_queue, ^{
  [self startConnection];
});

startConnectionの場合:

- (void)startConnection{
  ... some URL processing

  responseData_ = [[NSMutableData alloc] init];
  connection_ =
  [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self];
}

NSURLConnectionデリゲートメソッドは、この方法では呼び出されません。それを機能させるための実際のコードは何ですか?ありがとう!

役立つかもしれない小さなアップデート

このデリゲートメソッドを呼び出すだけです。

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 

メッセージ付き:

指定されたホスト名のサーバーが見つかりませんでした。

Wi-Fiが接続されていることは確かですが、なぜ呼び出されるのかはわかりません:(

4

1 に答える 1

2

画面をロックすると、アプリはバックグラウンド実行モードではなくバックグラウンドモードになります。 ユーザーが画面をロックしているときにダウンロードする場合は、このメソッドを確認する必要があります[UIApplication -beginBackgroundTaskWithExpirationHandler:]

于 2012-12-31T04:43:04.367 に答える