Skip to content →

NSMutableArrayをNSUserDefaultsで保存する

通常、NSUserDefaultsで保存できるのはNSDictionary, NSArray, NSString, NSDate, NSData, NSNumberだけのようです。そのままNSMutableArrayを保存しようとしても、エラーが出てしまいます。

NSMutableArrayを保存したい時は、一度NSDataに変換して保存します。

保存

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *arr = ... ; // set value
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arr];
[defaults setObject:data forKey:@"theKey"];

読み込み

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:@"theKey"];
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:data];

[sc name=”ios”][sc name=”engeneer”]

Published in 開発奮闘記