NSMutableDictionaryを保存するためにNSUserDefaultsを使用しました。しかし、私はNSUserDefaultsから値を取得しているとき、私は値を保存しているNSMutableDictionaryの値を変更/更新するためにアンバランスです。NSUserDefautsの値で初期化されたNSMutableDictionaryを更新できません
どうすればよいですか?
NSMutableDictionaryを保存するためにNSUserDefaultsを使用しました。しかし、私はNSUserDefaultsから値を取得しているとき、私は値を保存しているNSMutableDictionaryの値を変更/更新するためにアンバランスです。NSUserDefautsの値で初期化されたNSMutableDictionaryを更新できません
どうすればよいですか?
NSDictionary
の可変ではないインスタンスが常にNSUserDefaults
から取得されます。それらを変更可能にするには、次のようにする必要があります。
dict = [[NSUserDefaults standardUserDefaults] objectForKey:@"myKey"];
myMutableDict = [dict mutableCopy];
// Note that the retain count is +1, so you will need to
// release or autorelease myMutableDict later on.
plistに保存することもできます。
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * docDirectory = [paths objectAtIndex:0];
NSString * dataFilePath = [docDirectory stringByAppendingPathComponent:@"YourFile.dat"]
NSMutableDictionary * newLocalPlist = [[NSMutableDictionary alloc] init];
// add your prefs here
[newLocalPlist writeToFile:dataFilePath atomically:YES];
[newLocalPlist release];
そして、これはあなたがPLISTから読み取る方法です:
これは、あなたがPLISTに書き込む方法です
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * docDirectory = [paths objectAtIndex:0];
NSString * dataFilePath = [docDirectory stringByAppendingPathComponent:@"YourFile.dat"]
NSMutableDictionary * lastLocalPlist = [[[NSMutableDictionary alloc] initWithContentsOfFile:dataFilePath] autorelease];
どうもありがとう!!! :) +1 – Ratan