たくさんの配列を渡すことを含むプロジェクトをリファクタリングしています。現在、配列を返す各メソッドは、配列を返す直前に配列を並べ替えます。これはいくつかの理由で理想的ではありません-重複したコードがたくさんあり、配列を2〜3回ソートするのは非効率的であり、新しい関数を書くのは簡単すぎますが、配列を返す前にソートするのを忘れます。
配列が常にアルファベット順に保持されることを保証する方法を探しています。私の現在の考えは、サブクラス化NSMutableArray
および/またはNSArray
アルファベット順の配列クラスを作成することです。配列を作成または変更して呼び出すすべてのメソッドをオーバーライドしてから、super
それ自体を並べ替える必要があります。
これは合理的に聞こえますか、それともより良いアプローチがありますか?
編集:パフォーマンスの問題が言及されているので、私のプロジェクトからの関連情報を含めます。速度は重要な問題ではありません。プロセス全体は数秒しかかからず、ツールは頻繁にしか使用されません。したがって、単純さと明白な正確さがより重要です。
また、アレイのユースケースは特定のものです。配列が返されると、呼び出し元は常に配列内のすべての要素に少なくとも1回はアクセスします。