1

JSON ファイルを解析してオブジェクト グラフを作成しています。JSON をデシリアライズしながら、ブロックを使用してオブジェクトを検証します。いずれかのオブジェクトで検証エラーが発生した場合は、ブロック処理を中断する必要があります。ステートメントのようbreakに、ネストされたブロックから抜け出す方法はありますか?switch

iOS 5.0 で ARC を使用しています。私の問題を理解するのに役立つコードが必要な場合はお知らせください。

4

1 に答える 1

4

これに対する解決策は、クラスに __block BOOL ivar を追加することです。これを「キャンセル」と呼びましょう。エラーが見つかったら、'cancel' を yes に設定します。すべてのブロック、すべてのループで、'cancel' が false の場合にのみ機能します。

このように、エラーが発生してキャンセルが設定されている場合、ブロックは「キャンセル」が設定されていることを検出するとすぐに終了します。

編集:私がこの ivar を書いたので、__block 修飾子は必要ありません (そして、それを必要としたことがないかもしれませんが、確かではありません)。ブロックが ivar を参照する場合、"self" ポインター、つまり self->ivar を介して参照します。

于 2012-09-07T11:46:19.767 に答える