0

アプリケーションのいくつかの異なる場所から使用できる機能を少し実装する必要があります。基本的にはネットワーク経由で何かを送信しますが、特定のビューにアタッチする必要はありません。UIAlertViews によってすべてをユーザーに伝えることができます。

私がやりたいことは、機能をオブジェクト (?) にカプセル化して、それ自体の状態をしばらく維持し、それから自然に消えることです。私はいくつかの同様のトピックを読みましたが、オブジェクトを保持してから解放することは一般的に推奨されていませんが、一方で、解放されないという事実を除けば、本質的に非常に似ているシングルトンがあります。それらを適切に使用するためだけにそれらへの参照を保持する必要はありません。ただし、私の状況では、シングルトンを作成し、実行に数秒かかるもののためにそれを維持するのは少し無駄だと感じています。

私が思いついたのは、クラスのインスタンスへの一意の参照を保持するクラスにローカルな静的辞書です。次に、インスタンスがそのタスクを完了すると、遅延後にセレクター「removeObjectForKey」を実行し、既存のもののみを削除します参照し、効果的にオブジェクトを殺します。このようにして、とにかくほとんどの場合空である辞書のみをメモリに保持します。

問題は、そのような解決策に注意すべき予期しない副作用はありますか、また、説明されている状況に適したパターンは他にあるのでしょうか?

4

1 に答える 1

0

基本的に、独自のクラスの永続オブジェクトの代わりに、タイプの永続オブジェクトを取得しましたNSDictionaryか? それはどのように役立ちますか?あなたのオブジェクトは異常に大きいですか?数バイトのためにコードベースをより複雑にする場合、それは良いトレードオフではありません。

特に今は ARC が一般的になっているため、この種の策略は通常良い考えではありません。シングルトン アプローチがどれだけのメモリを消費するかを測定し、それが問題であることがわかりましたか? これを行っていない場合は、シングルトンを使用してください。それはより単純なコードであり、他のすべての条件が同じであれば、より単純なコードの方がはるかに優れています。

于 2012-12-14T12:11:48.873 に答える