NSIncrementalStore
の中にNSURLConnection
を使用して、NSManagedObject
をRailsに組み込まれた残りのベースのWebサービスと同期させています。私は+sendSynchronousRequest:returningResponse:error
を認識していますが、私が理解することは、応答を適切に処理するために必要なHTTP応答ステータスコードなどのものにアクセスすることを許可しないことです、私の理解はsendSynchronousRequestが200の範囲で応答し、もしそれがなければ、本当にそれ以上のことは分かりません。私は何らかの理由で、NSURLConnection
がインスタンス化された後、現在のメソッド呼び出しをブロックし、ブロックされたメソッドによって返される可能性のある値をNSURLConnection
のデリゲートが設定した後でブロック解除する必要があると仮定しています。私はこれがNSLockとNSThreadのいくつかの組み合わせを含むと仮定していますが、私は本当にこれでどこから始めるべきかわかりません、どんな助けも大変ありがとう、ありがとう。NSURLConnectionの同期バージョンを作成するには
答えて
returningResponse:
パラメータから取得した応答オブジェクトをNSHTTPURLResponse
にキャストすると、ステータスコードとその他のHTTP固有の応答値にアクセスできます。
NSURLResponse* response = nil;
NSError* error = nil;
NSData* data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
if ([httpResponse statusCode] == 200) {
// ...
}
ありがとう、これは私にそこにほとんどすべての方法を得るようです。それは422で適切に動作するように思われますが、サーバが401で応答すると、上記の例のhttpResponse変数はnilです。これについて何かすることができますか、これは私が回避しなければならない限界ですか? – quinn
一般的にはあなたのようなものを扱うように設計されている、 'NSURLConnection'よりも低レベルのAPIがほしいと思うように聞こえます。 –
NSError* err;
NSHTTPURLResponse* response;
NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
あなたのHTTPレスポンスは、あなたはそれへのアクセス権を持っているので、間接によって返されます。ちょうどNSHTTPURLResponseを渡すか、そのままそれをキャストします。私は何とかNSURLConnection>がインスタンス化された後、現在のメソッド呼び出しをブロックし、NSURLConnectionのデリゲート後にブロックを解除する必要がありますと仮定してい
>はブロックされた方法で返すことができるいくつかの値を設定します。私はこれがNSLockと> NSThreadのいくつかの組み合わせを含むと仮定しています
私はあなたがこれによって何を意味するか分かりません。同期要求を実行しているため、デリゲートは必要ありません。スレッド化に関しては、これらの要求を同期的に実行しているので、GCDを使用してバックグラウンドスレッド上に作成することも、より簡単にすることもできます。私はNSOperationとNSOperationQueueを調べます。
アドバイスをいただき、ありがとうございます。 NSIncrementalStoreについての私の理解が正しいなら、NSIncrementalストアの外で、つまりアプリケーション内でCore Dataを使用するたびに、GCDを使用する必要があります。それが理にかなったことを願っています= /これはobj-cで初めての作業です – quinn
- 1. は非同期NSURLConnection
- 2. 同期NSURLConnection要求を作成する方法
- 3. 同期NSURLConnectionコールバック
- 4. ファイルを非同期にアップロードするNSURLConnection?
- 5. nsurlconnection非同期リクエスト
- 6. NSURLConnection同期問題
- 7. 非同期NSURLConnectionコール
- 8. Google GuavaのTreeMultimapの同期バージョンを作成する方法
- 9. dispatch_asyncブロックで同期NSURLConnectionをラップすると非同期接続
- 10. 非同期NSURLConnectionとNSOperation - キャンセル
- 11. 非同期NSURLConnection with NSOperation
- 12. "loop for"の非同期バージョンを作成するのに助けが必要
- 13. スレッドからのNSURLConnection同期要求と非同期要求
- 14. NSURLConnectionを使用した非同期ダウンロードキュー
- 15. 非同期リクエストを作成する
- 16. NSURLConnectionはバックゴールで同期要求を行います
- 17. NSURLRequest、NSURLConnectionバージョン情報
- 18. svnのファイルの同期バージョン
- 19. 非同期メソッドの作成方法は?
- 20. 同期フレームワークスコープのバージョン管理
- 21. WCF操作で非同期/バックグラウンドプロセスを作成する方法は?
- 22. 非同期タスクシンクロナスを作成するには
- 23. クリーンな非同期ループを作成するには?
- 24. ハンドラの作成を同期させて、
- 25. MSBuild出力は、ビルドラベルのバージョン番号と同じランタイムディレクトリに作成
- 26. メインrunloopに非同期NSUrlConnectionがありません
- 27. 別スレッドの非同期NSURLConnectionがデリゲートメソッドの呼び出しに失敗する
- 28. NSURLConnectionを使用してUITableViewの画像を非同期にダウンロードします。
- 29. Google APIの非同期バージョンですか?
- 30. NSURLConnection認証チャレンジのSecCertificateRefの作成
また、NSURLConnectionDelegateのドキュメントはどこでもオンラインで入手できますか?ヘッダファイルの外には存在しません。オンラインのドキュメンテーションは認証に関してのみであり、 'connection:didReceiveResponse:'のようなものはありません。 – quinn