0

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

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

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

  1. Database Pro:我从我的数据中得到了很好的表示。缺点:如果应用程序处于活动状态,则很难修改。我不需要场地类别的新表格,一张表格对于其中的 1 条记录来说太多了。我必须做很多查询、插入、删除、更新等。

  2. 序列化如果我能找到一个好方法,我只是说将整个类写入磁盘并从磁盘读取,这很容易。(我从未尝试过)

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

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

4

2 回答 2

1

解决此问题的最简单方法是(IMO),是让您的 DTO 遵守NSCoding并使用NSKeyedArchiver对其进行序列化,并使用NSKeyedUnarchiver对其进行反序列化。

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

于 2013-09-23T20:51:16.363 回答
0

您是否考虑过使用 CoreData?这是我想到的第一个解决方案。

CoreData(默认情况下)基于 SQLite,在我看来是 iOS 中持久化对象的事实标准。

于 2013-09-23T20:25:04.297 回答