多くの古いコードをリファクタリングして、JSON 応答に無効な値が含まれる場合は常に、クライアントが悪いサーバー応答とログ例外に対してより堅牢になるようにします。また、respondsToSelector を使用して解析される各ノードの有効性 (データ型) をチェックすることを考えています。
応答のデータ型 (int、bool など) をチェックしています
[[json objectForKey: @"feature_enabled"] boolValue],
@"feature_enabled" ノードに 0 または 1 以外のものが含まれている場合、アプリがクラッシュします。
この問題を回避するには、次のようにします
if ([[json objectForKey: @"feature_enabled"] respondsToSelector: @selector(boolValue)]){
BOOL featureEnabled = [[json objectForKey: @"feature_enabled"] boolValue];
}else{
Log Exception
}
このコードでパフォーマンス分析を行ったことはありませんが、解析する予定のすべての JSON 応答に対してセレクターへの応答をチェックする場合、パフォーマンスの低下が予想される場合に、どのような種類のパフォーマンスが低下するかを誰かが提案できるかどうかを知りたいです。 .
情報源へのポインタは大歓迎です!