我正在开发一个应用程序,它使用 foursquare 和其他服务器 api-s 从互联网获取信息。但是当应用程序未连接到互联网时,我必须使用一些数据,我需要一种方法可以轻松地从互联网保存这些数据,如果手机失去连接,将它们存储在“磁盘”上作为缓存。基本上我想存储一些模型类,例如:
VenueCategory 包含名称、ID、图像(~10)、7 天的天气预报、 field 。 field 包含图像、评级、名称、类别、类别图像、地址、电话号码和开放时间安排。 水报告包含日期、最高、最低温度、风......
我正在考虑 3 种方法,但我不知道哪种方法最适合我的问题,也许你可以给我更好的想法。
数据库 亲: 我从我的数据中得到了很好的表示。 缺点: 如果应用程序处于事件状态,则很难修改。 我不需要为 field 类别准备一张新表,一张表对于其中的 1 条记录来说太多了。 我必须做很多查询、插入、删除、更新等操作。
序列化 如果我能找到一种好方法,那就很容易了,我只需将整个类写入磁盘并从磁盘读取即可。(我从未尝试过)
Plist:(就像数据库一样)
我的最后一个问题是,您认为哪个是最好的,为什么?你有更好的主意吗?
最佳答案
解决这个问题的最简单方法是(IMO),就是让您的 DTO 遵守 NSCoding并使用 NSKeyedArchiver 序列化它们并使用 NSKeyedUnarchiver 反序列化它们.
您可以使用 AutoCoding为此,它会毫不费力地自动实现 NSCoding 中所需的方法。
关于ios - 缓存模型(DTO)类供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18968143/