1

こんにちは :)

オブジェクトを保存する方法はありますが、Objective C で上書きすることはできません。

私は NSUserDefaults を試しましたが、オブジェクトを追加すると上書きされます!

アプリまたはブックマークでお気に入りを作成しようとしているので、どうすればこれを防ぐことができますか?

しかし、保存しようとしているオブジェクトを保存する方法がわかりません。

これは私が保存しようとしているときです。

NSUserDefaults *favorite = [NSUserDefaults standardUserDefaults];

[favorite setObject:saveTip forKey:@"saveTipFavorite"];

[favorite synchronize];

しかし、アプリのお気に入りに追加ボタンを押すたびに上書きします!

そして、上書きしたくありませんが、新しいオブジェクトを作成して追加します。

あなたが私を理解してくれることを願っています:)

4

3 に答える 3

2

キーごとに1つのオブジェクトしか存在できず、毎回変更しているため、上書きされています。あなたがしたいことは、単一のオブジェクトではなく配列を保存し、それをユーザーのデフォルトのキーとして設定することです。

初期化:

NSMutableArray *objectArray;
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSArray *oldSavedArray = [currentDefaults objectForKey:@"savedArray"];
if (oldSavedArray != nil)
   objectArray = [[NSMutableArray alloc] initWithArray:oldSavedArray];
else
   objectArray = [[NSMutableArray alloc] init];

ユーザーの既定値は不変 ( ) バージョンしか格納できないため、からNSArrayに変換していることに注意してください。NSMutableArrayNSArray

次に、アイテムを追加します。

[objectArray addObject:whatever];
[currentDefaults setObject:objectArray forKey:@"savedArray"];

これが大量のデータ (大量のデータ) を行うものである場合は、代わりに Core Data を使用することを検討してください。より高速になります。NSUserDefaults重いデータを保存するためのものではありません。

于 2012-07-24T20:05:02.747 に答える
0

保存するオブジェクトは配列にすることができます。ヒントを保存する配列を作成し、それを に指定されたオブジェクトにしNSUserDefaultsます。

于 2012-07-24T20:04:36.377 に答える
0

NSUserDefaults は単純なものには問題ありませんが、アプリで大量のデータを処理する場合は、CoreData.

http://developer.apple.com/library/mac/#documentation/cocoa/Conceptual/CoreData/cdProgrammingGuide.html

これにより、節約の問題が解決されるだけでなく、データの操作も簡単になります。

于 2012-07-24T21:15:17.907 に答える