オブジェクトのinitメソッドでNSUserDefaultsからロードします。オブジェクトのdeallocメソッドでNSUserDefaultsに保存できますか?
まったく同じようなもの:
-(void)dealloc {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:self.filenamesArray forKey:self.defaultsKey];
[userDefaults synchronize];
self.filenamesArray = nil;
self.defaultsKey = nil;
[super dealloc];
}
良い、悪い、いいですか?それが良くないなら、どこが良いでしょう。
編集:
詳細な回答ありがとうございます。それらすべてが理にかなっています。これがユーザーのデフォルトに保存するのに不適切な場所である理由を私が発見したもう1つの理由は、deallocは、オブジェクトの割り当てが適切に解除された場合にのみ呼び出されるためです。私のアプリが強制終了された場合、このコードは実行されません。同様に、アプリがバックグラウンド(iOS 4)にプッシュされた場合、これは実行されません。明示的な[userDefaults synchronize]
呼び出しも削除しました。少し緊張しますが、これはアップルに信頼を置いています。:)