繁体   English   中英

如何在字符串中存储 JSON 响应,然后将该字符串存储在本地 ios 目标 c

[英]How to store JSON response in string and then store that string locally ios objective c

[在此处输入图像描述][1]我从 JSON 中获得三个值。 如何将这三个值存储NSString然后将这些字符串存储在本地即设备上? 我试过NSUserDefaults但我无法做到。 我附上了代码片段。

NSData *JSONData = [NSJSONSerialization dataWithJSONObject:responseObject
                                                   options:0 // Pass 0 if you don't care about the readability of the generated string
                                                     error:&error];

if (! JSONData)
{
    NSLog(@"Got an error: %@", error);
} else {
    //_branchId = [responseObject valueForKey:@"branchId"];
    _branchName = [responseObject valueForKey:@"branchName"];
    _branchUri = [responseObject valueForKey:@"branchUri"];
    [[NSUserDefaults standardUserDefaults] setObject:_branchId forKey:[responseObject valueForKey:_branchId]];
    [[NSUserDefaults standardUserDefaults] setObject:_branchName forKey:@"branchName"];
    [[NSUserDefaults standardUserDefaults] setObject:_branchUriStore forKey:@"_branchUri"]; // Here the setobject value remains nil only
    [[NSUserDefaults standardUserDefaults] synchronize];

PS:我也想在我的 commonutility 中使用该存储值。 怎么做呢?

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"(__fetchBranchUri)/%@",url]]];

在 else 块中将内容替换为

[[NSUserDefaults standardUserDefaults] setObject:[responseObject valueForKey:@"branchId"] forKey:@"branchId"];
[[NSUserDefaults standardUserDefaults] setObject:[responseObject valueForKey:@"branchName"] forKey:@"branchName"];
[[NSUserDefaults standardUserDefaults] setObject:[responseObject valueForKey:@"branchUri"] forKey:@"_branchUri"]; 

[[NSUserDefaults standardUserDefaults] synchronize];

编辑:解释

在您上面的代码中,对象 _branchUriStore 未定义,可能是您问题的一部分(一个简单的错字?)。 下面,我已经更新并精简了您的代码,以消除您使用 branchId 的另一个问题,这样您就可以从样式中认识到您尝试做的大部分事情都很好。

另请注意,@rmaddie 在下面的评论中提供了额外的改进。

好的,这是你应该做的。

1- 将您的 JSONData 转换为无 NSData

2-将您的 NSData 保存在 NSUserDefaults/

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM