2012-11-14 6 views
5

実行要求に操作を追加します。私はASINetworkQueueについて読みましたが、すべての操作を追加してすべて実行します。しかし、私は実行キューに操作を追加したい。ASIHTTPRequestまたはAFNetworkingを要求している間にキューに操作を追加します。

これは可能ですか? ASIHTTPRequestまたはAFNetworkingを使用して、私は何をしようとしている限り、気にしません。

EDIT

私は別の要求を追加しようとしながら、それはエラーの下に表示されます。

[ASINetworkQueue addOperation:]:操作が実行されていると「

+0

ここで問題は何ですか?あなたの要求は現在実行中ですか、キューはすでにいくつかの操作を実行していますか?操作が別のキューですでに実行されている場合は、キューに操作を追加できません。それはあなたが探しているものですか? – iDev

+0

はい、私のキューはまだ実行中ですが、操作に別のキューを追加したいとします。これは可能ですか? 'AFNetworking'の試合はどうですか? – HelmiB

+0

私は混乱しています。操作が実行中で、別のキューに追加したいのですか?キューは他の操作を実行することができ、その時に任意の操作を追加できます。 – iDev

答えて

11

addOperation:apple documentationから、実行中の操作をNSOperationQueueに追加できないことは明らかです。

これは、操作対象が一度に最大1つの操作キューにすることができ、操作が別のキューにしている場合は、この方法はNSInvalidArgumentException例外をスローし、そこに言及したものを

です。同様に、このメソッドは、操作が現在実行中であるか、実行がすでに終了している場合にNSInvalidArgumentException例外をスローします。

これはデフォルトの動作で、NSOperationQueueです。キューに追加する前にNSOperationが実行されていないことを確認する必要があります。これを確認するにはisExecutingisFinishedなどのさまざまなプロパティがあります。

+0

お役立ち情報thanks – HelmiB

+6

同じ操作を同じキューに2回エンキューしようとすると、操作が 'isExecuting'と' isFinished'でなくても、 '操作が実行され、エンキューできません 'というエラーがスローされます。同じキューに再びエンキューする前に操作を再開始する必要があります。 –

0

をエンキューすることができないあなただけの要求キューにaddOperationを呼び出します。そのASiNetworkQueueasiでは、実行中かどうかにかかわらず、それは重要ではありません。

+0

ええと...私はリソースが異なっていると読んでいます。実行中の操作を追加できません。確信してるの?私は試していない、明日それを試してみるだろう。ありがとう。 – HelmiB

+0

まあ、私はそれを試してみましたが、コードとヘッダーの文書から、それはそれほど役に立たないように見えます。 –

+0

もちろんNSOperationQueue(ASIまたはAFN)は常に依存関係で作業することができます。 –

関連する問題