3

私たちのプロジェクトでは、ネットワーク上に nil を含む JSON を返す何かがあると、iPhone アプリがクラッシュすることがあります。もちろん、そのような問題を処理するヘルパー クラスがあります。ただし、人々はエラーを起こしやすく、独自の stringForKey や dateForKey などの代わりに NSDictionary で objectForKey を呼び出します。今、そのようなすべての問題を完全に殺すクラスがあります: https://github.com/nicklockwood /NullSafe

私の質問は: NullSafe は本当に安全ですか? ロジックが間違っていて NSNull が発生した場合に、プログラムをクラッシュさせたい場合があるからです。問題を無視するだけで、問題が隠されます。アプリはおそらくクラッシュしませんが、場合によっては奇妙なことが起こります。

現在、私はこのクラスを使用せず、値を取得しようとする前に、JSON NSDictionaries がすべての NSNull でフィルター処理されていることを確認することに傾いています (ただし、パフォーマンスに影響する可能性があります)。

皆さんはどう思いますか?

4

1 に答える 1

3

そのクラスは、メッセージを送信してもアプリケーションがクラッシュしないという点で安全です。値とよく似た動作をしnilます。

このクラスはバグを解決しません! 取得する可能性がある場合NSNull、そこにあるように行動し、そのケースを処理する必要があります。

そのようなクラスを使用したことがありますが (これも JSON のため) 、メソッドにNSLog(またはラチャー ブレークポイントを) 入れて、どこからなぜ呼び出されたかを確認しました。私はこれを本番環境では使用しません。-forwardInvocation:


パフォーマンスについても尋ねました。さらに何が必要かわからない: 配列から s を削除するNSNullか、すべてのクラスでメソッド シグネチャを検索する;)

于 2013-01-28T21:44:16.083 に答える