如何在iOS上本地缓存JSON Web响应 - 目标c

问题描述 投票:0回答:2

我正在为网络后端构建一个移动iOS应用程序。我使用以下代码检索JSON响应:

NSError *error;
NSString *url_string = [NSString stringWithFormat: @"https://myURL"];
NSData *data = [NSData dataWithContentsOfURL: [NSURL URLWithString:url_string]];
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

在本地存储此数据的最佳/最简单方法是什么,以便在无法使用Internet连接时可以使用本地数据库?目的是在启动应用程序时检查Web连接。如果连接可用,请获取JSON响应,解析并更新本地副本,如果连接不可用,则解析本地存储中的数据。

提前致谢。

ios objective-c json
2个回答
0
投票

如果您希望缓存JSON数据以便仍然可以脱机使用它,我会将JSON字典(或数据)写入应用程序沙箱中的文件。 “应用程序支持”文件夹的子文件夹将是一个好地方。在这种情况下,您不希望使用Caches文件夹,因为当您需要脱机时,iOS可以清除这些文件。

诀窍是将给定的URL映射到文件名。您需要此映射来保存给定URL的文件,并在以后加载文件(如果脱机)。您应该只需将所有/字符转换为其他内容(如下划线),即可将URL转换为有用的文件名。

当用户备份其iOS设备时,您可能不希望备份这些文件,因此请确保使用“不备份”属性标记文件。关于该主题存在许多现有问题。


-1
投票

最好的方法是CoreData,最简单的方法是NSUserDefaults

NSUserDefaults Class Reference

[[NSUserDefaults standardUserDefaults] setObject: jsonDict forKey:@"dictionaryKey"];
 //...
 NSDictionary * myDictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"dictionaryKey"];
© www.soinside.com 2019 - 2024. All rights reserved.