gpt4 book ai didi

iphone - 如何将当前 NSUserDefaults standardUserDefaults 状态转储到磁盘并读回?

转载 作者:行者123 更新时间:2023-12-03 19:40:46 25 4
gpt4 key购买 nike

我希望有某种方法将用户默认值备份为属性列表或 XML,或其他可以通过网络传输的适当文件格式。我怎样才能获得这些的备份,以便我可以将它们发送到网络服务器并将它们检索回设备并将它们读入用户默认数据库?

最佳答案

您可以获得用户默认值的 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 project page了解更多详细信息和下载链接。

希望有帮助。

注意上面的代码中没有错误检查 - 如果您的 JSON 包含 int/float/等,您可能会遇到问题,因为 setObject:forKey: 将失败。

关于iphone - 如何将当前 NSUserDefaults standardUserDefaults 状态转储到磁盘并读回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com