[英]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.