2012-01-18 7 views

答えて

1

通常のNSURLConnectionを使用している場合は、キャンセルコマンドを送信するだけです。 (docs

好きINIT:

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

はそうのようにキャンセル:

[connection cancel]; 
+0

お返事ありがとうございます。しかし、私は接続変数を取得するためのアクセス権を持っておらず、ライブラリファイル内で行われています。私に上記のコメントのための最善の解決策を提案してください... – Nitu

+0

クイックアンドダーティー:libを編集して接続を公開する必要があります。例えば。次のように: - (NSURLConnection *)connection {return _connection; }代わりに、あなたは自分自身で接続を扱いたいかもしれませんが、なぜlibを使うのが簡単なのでしょうか? – Wolfert

0

我々は+[NSURLConnection sendSynchronousRequest:returningResponse:error:]について話していますか?その場合、この要求を停止することはできません。

飛行中にネットワーク操作を停止する必要がある場合は、非同期APIを使用する必要があります。私は個人的にはNSURLConnectionを使って自分自身をロールすることを好むし、現在の仕事のための仕事の量は最小で、普通はNSOperationかGCDだけです。他のアプローチを選択した場合でも、NSURLConnectionの使い方を学ぶことを強くお勧めします。

このような他のアプローチの1つはAFNetworkingです。NSURLConnectionNSOperationで、cancelを呼び出すことができます。

+0

こんにちは、ありがとう、私は同期接続を使用し、コードを変更することはできませんいくつかのライブラリファイルを持っている。私は別のスレッドでサーバーへの呼び出しを行い、バックグラウンドからフォアグラウンドまでナビゲートするときは、そのスレッドがまだ実行中であるかどうかをチェックしていますが、クラッシュを避けるためにキャンセルしています。 "iPhoneは時間通りに再開できませんでした"。私はこの問題を解決したい、あなたは私を助けてくれますか? – Nitu

+0

@ Nituキャンセルを実際に実装するのには不十分です。あなたのアプリが再開を要求されると、20秒以内に応答するか、ウォッチドッグがあなたを殺します。同期ネットワークアクセスを使用しないコードを変更することが唯一の解決策です。 – PeyloW

+0

こんにちはPeylowあなたは少し明確にしてください。ありがとう。 – Nitu

関連する問題