アプリへの接続ライブラリとしてAFNetworkingを使用しています。バックエンドの制限により、サーバーがCookieTheftException(Grails)を識別するため、アプリの起動時に2つのリクエストを同時に送信することはできません。最初の接続が成功した後、必要な数の同時リクエストを実行できますが、最初のリクエストはシリアルである必要があります。どうすればそれを達成できますか?
セマフォを使用することを考えましたが、メインスレッドをブロックできません。
編集1
オーバーライドしようとしましたが、機能しませんでした。操作キューは、一方の要求(コールバックを含む)が終了してもう一方の要求を開始するのを待たないと思います。
- (void)enqueueHTTPRequestOperation:(AFHTTPRequestOperation *)operation
{
[self.operationQueue setMaxConcurrentOperationCount:1];
[super enqueueHTTPRequestOperation:operation];
}
編集2
maxConcurrentOperationが機能し、実際には一度に1つの操作が実行されることに気付きました。問題は、エンキューされたリクエストが、サーバーが必要とするCookieなしですでに作成されていることです。