Вы можете получить JSON-строку с пользовательскими значениями по умолчанию, например:
// You will need this at the top of your file
#import "CJSONSerializer.h"
// Get a dictionary of the user defaults
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
// Convert them to JSON
NSString *json = [[CJSONSerializer serializer] serializeObject:dictionary];
и для считывания их обратно в устройство вы можете просто сделать наоборот:
// You will need this at the top of your file
#import "CJSONDeserializer.h"
// Get the data from the server and re-create the dictionary from it
NSData *jsonData = <YOUR DATA FROM THE SERVER>;
NSDictionary *dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:nil];
// Put each key into NSUserDefaults
for (id key in [dict allKeys]) {
id object = [dict objectforKey:key];
[NSUserDefaults standardUserDefaults] setObject:object forKey:key];
}
[[NSUserDefaults standardUserDefaults] synchronize];
Посетите страницу проекта TouchJSON для получения более подробной информации и ссылки для скачивания.
Надеюсь, это поможет.
NB В приведенном выше коде нет проверки ошибок - вы можете столкнуться с проблемами, если ваш JSON содержит int / float / etc, потому что setObject: forKey: завершится неудачей.