2010-12-03 16 views
1

シングルトンの最初のインスタンスが作成されたときに作成されるNSArrayを持つシングルトンを持っています。この配列をディスクに保存するのはいつですか?deallocメソッドですか?私はAppleのドキュメントをチェックし、あなたは本当にdeallocではいけないと言っていますが、どこに言いませんか。では、配列が変更されるたびにディスクに書き込むつもりですか?これは無駄に思える?配列をシングルトンでディスクに保存

答えて

3

一般に、状態が変更された時刻に近い状態を保存する必要があります。保存する状態の量が非常に小さい場合、アプリケーションのdelegate -applicationWillResignActive:メソッドが呼び出されるまで待つことができます。または、NSNotificationCenterでシングルトン登録を行い、UIApplicationWillResignActiveNotificationを観察することもできます。そして、保存してください。

アレイが非常に大きい場合は、保存頻度を減らすことができます。しかし、アレイをディスクに書き込むのにどれくらいの時間がかかるかにも注意する必要があります。アプリケーションがアクティブとして辞任する状況によっては、ディスクへの書き込みに時間がかかることがあります。

書き込む必要があるデータの最大量をよく知っていますか?これは制限されているのか、それとも制限のないものですか?

+0

よく、ユーザーはtableView(実際には2つのNSArrayがあります)のセルを並べ替えるたびに、シングルトンの配列が一致するように更新されます。ユーザーは一度に複数の行を並べ替える可能性が高いですが、すべての行が移動したので、ユーザーは行を移動する必要はありません。アプリはディスクに保存されます。ユーザーは別の行を1ミリ秒後に移動して、ディスクなどに再度保存する必要があります。 –

+0

最近コミットしたユーザーの概念はありますか「完了」ボタンのように変更されますか?その点については、最近の変更を破棄する「取り消し」がありますか? – westsider

+0

どうすればそれを忘れることができますか?なぜ私は質問をしましたか? –

関連する問題