リモートのapi呼び出しの問題を解決するために、Restkitのオブジェクトマネージャを使用しています。Restkit throwsでNSAssertsを処理する
NSAssertが広範囲のエラーをスローします。たとえば、正常に作成されたjsonとは対照的に、サーバーがエラーページを返した場合、コードに何も問題がない場合でも、NSAssertが生成されます。
がどのように我々はこれらのNSAssertsエラーを処理する必要があります(例外とnsassertsの一般的な取扱いに関係しているほとんどが)私は混乱していますがいくつかありますか?たとえば、何度か再試行してから、「何かが間違っている」というメッセージを表示したいとします。
私はcatch-tryブロックを使用してエラー(以下のコード)をキャッチしようとしましたが、エラーはキャッチされません。だから私のアプリはちょうど失敗し続けます。さらに、私はとにかくリリースモードでtry-catchを使うのは快適ではない。感謝 - 他の障害とは対照的に、ちょうど私の理解のため
、なぜあなたの助けのための
おかげで多くは、Restkit使用NSAssertsを行います!一般的に
// code to catch NSAssert that sharedManager throws
@try{
[sharedManager loadObjectsAtResourcePath:self.resourcePath delegate:self];
}
@catch (NSException *ex) {
NSLog(@"exception caught");
}
IME、人々は(私自身を含む)アサーションを使用するのは簡単です。エラー処理がうまくいかないからです。サーバーがガベージを返したため、プロダクションコードが失敗したアサーションを持つべきではありません。ライブラリコード*本当に*してはいけません。あなたは '#define NS_BLOCK_ASSERTIONS 1'を試して、何が起こるか見ることができます... –