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

Ios 缓存模型(DTO)类以供以后使用,ios,objective-c,caching,Ios,Objective C,Caching,我正在开发一个应用程序,它使用foursquare和其他服务器api-s从internet获取信息。但是,当应用程序未连接到internet时,我必须使用一些数据,我需要一种方法,可以轻松地从internet保存这些数据,并在手机失去连接时将其存储在“磁盘”上作为缓存。基本上,我想存储一些模型类,如: VenueCegory包含名称、id、图像(~10)、7天的天气报告、场馆。 场馆包含图像、等级、名称、类别、类别图像、地址、电话号码和开放时间安排。 水报告包含日期、最高、最低温度、风等 我正在

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

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

我正在考虑3种方法,但我不知道哪种方法最适合我的问题,也许你能给我更好的主意

  • 数据库 赞成的意见: 我从我的数据中得到了一个很好的表示。 欺骗: 如果应用程序处于活动状态,则很难修改。 我不需要一张新的场地类别的桌子,一张桌子里面有一张记录就足够了。 我要做很多的查询,插入,删除,更新等等

  • 系列化 如果我能找到一个很好的方法,我就说把整个类写到磁盘上,然后从磁盘上读取,这很容易

  • Plist:(就像数据库一样)


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

    您考虑过使用CoreData吗?这是我想到的第一个解决办法


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

    实现这一点的最简单方法是(IMO),让您的DTO遵守并使用序列化它们,使用反序列化它们


    您可以使用它,它可以在NSCoding中自动实现所需的方法,而无需任何努力。

    谢谢您的回答:),这是一个好主意,但我在1年前使用过coredata,我在这方面有很多不好的经验,我无法使用多个线程轻松访问数据。我将尝试一下,看来我的问题解决了。