NSMutableArray の代わりにNSMutableSetを使う
iPhoneアプリのエンハンスとチューンアップをしています。
チューンアップはなかなか難しく、今まで作り上げたアルゴリズムは、おいそれと冗長な部分を見つけるのは難しいです。
でも、ついに発見。Arrayに要素を追加しながら、その要素を処理するループ。
同じオブジェクトが不必要に何回か登録される可能性があることが分かりました。
すでに処理したオブジェクトに対する全く同じ処理が何回か走る可能性があります。
このためNSMutableArray の代わりにNSMutableSetを使うことにしました。
こうすれば、同じオブジェクトは2回は登録されない。
ただ要素を取り出す時に、Enumerationを作らないと取り出せない。このオーバーヘッドが発生しますが、
特に処理が重い時に、少しパフォーマンスがアップするはずです。
エンハンスの方は、今まで、ボタンで行っていた処理を、オブジェクトのドラッグで直感的にできるように修正。
こちらは、使い勝手がよくなったと思います。
実機で安定化をした上で、バージョンアップの予定です。


コメントする