ios - 缓存模型(DTO)类供以后使用

标签 ios objective-c caching

我正在开发一个应用程序,它使用 foursquare 和其他服务器 api-s 从互联网获取信息。但是当应用程序未连接到互联网时,我必须使用一些数据,我需要一种方法可以轻松地从互联网保存这些数据,如果手机失去连接,将它们存储在“磁盘”上作为缓存。基本上我想存储一些模型类,例如:

VenueCategory 包含名称、ID、图像(~10)、7 天的天气预报、 field 。 field 包含图像、评级、名称、类别、类别图像、地址、电话号码和开放时间安排。 水报告包含日期、最高、最低温度、风......

我正在考虑 3 种方法,但我不知道哪种方法最适合我的问题,也许你可以给我更好的想法。

  1. 数据库 亲: 我从我的数据中得到了很好的表示。 缺点: 如果应用程序处于事件状态,则很难修改。 我不需要为 field 类别准备一张新表,一张表对于其中的 1 条记录来说太多了。 我必须做很多查询、插入、删除、更新等操作。

  2. 序列化 如果我能找到一种好方法,那就很容易了,我只需将整个类写入磁盘并从磁盘读取即可。(我从未尝试过)

  3. Plist:(就像数据库一样)

我的最后一个问题是,您认为哪个是最好的,为什么?你有更好的主意吗?

最佳答案

解决这个问题的最简单方法是(IMO),就是让您的 DTO 遵守 NSCoding并使用 NSKeyedArchiver 序列化它们并使用 NSKeyedUnarchiver 反序列化它们.

您可以使用 AutoCoding为此,它会毫不费力地自动实现 NSCoding 中所需的方法。

关于ios - 缓存模型(DTO)类供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18968143/

相关文章:

ios - PhAsset 获取文件大小 iOS

objective-c - ASIHTTPRequest 似乎总是缓存 JSON 数据

ios - 归档应用程序在管理器屏幕上生成模糊的图标

ios - UIView 动画有时不播放(立即进入结束状态)

objective-c - 是否可以看到 Objective-C ARC 输出?

ios - 找到满足 `ParseFacebookUtils` 依赖项的规范,但它们需要更高的最低部署目标

java - Spring 3.1.1 和缓存配置问题

caching - MySQL 查询缓存 : limited to a maximum cache size of 128 MB?

ios - swift 使用未解析的标识符'NSURLRequestUseProtocolCachePolicy'

ios - iPhone 应用程序未连接到 iTunes 商店