OrderedDictionaryを NSUserDefaultsに保存する必要があります。
私はここと他の多くの投稿でそれを行う方法を読みました:
-(id)initWithCoder:(NSCoder *)decoder{
if (self != nil){
dictionary = [decoder decodeObjectForKey:@"dictionary"];
array = [decoder decodeObjectForKey:@"array"];
}
return self;
}
-(void)encodeWithCoder:(NSCoder *)encoder{
[encoder encodeObject: dictionary forKey:@"dictionary"];
[encoder encodeObject: array forKey:@"array"];
}
次に、次のように呼び出します。
OrderedDictionary *od = [OrderedDictionary dictionaryWithDictionary:[businessInfo objectForKey:@"allowedStates"]];
NSData *archivedObject = [NSKeyedArchiver archivedDataWithRootObject:od];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:archivedObject forKey:@"allowedStates"];
[defaults synchronize];
次のように解凍します。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *archivedObject = [defaults objectForKey:@"allowedStates"];
OrderedDictionary *countryStates = (OrderedDictionary *)[NSKeyedUnarchiver unarchiveObjectWithData:archivedObject];
空でarchivedObject
はありませんが、countryStates
空ですが、保存すると空ではありません。
どうですか?
を正常にアーカイブするにはどうすればよいOrderedDictionary
ですか?
編集済み
メソッド initWithCoder が呼び出されていますが、encodeWithCoder は呼び出されていません