我有一些从API中获取的Json数据,如果用户没有Internet连接,我想将其存储以备后用。但是我不确定最好的选择是保存它。
我当时正在考虑使用sqflite
,但是在用例中,我将需要完全替换所有条目,因此我将不得不删除并重写大约300个columns
,分为5个表,这很规律,我不确定是否理想。
我还考虑过仅将Json文件保存到设备存储中,甚至使用共享首选项。
你们中的任何一个都对我最好的选择有经验/想法吗?如果我使用sqflite
会不会很慢?谢谢
答案 0 :(得分:0)
如果要为用户创建脱机缓存,我认为使用sqflite
是持久数据的最佳选择。
使用共享首选项会比较慢,因为NSUserDefaults及其Android同类产品不是为高性能的读/写操作而设计的,因此,如果您处理大量数据,则所有插入,更新和查询操作通常都会较慢。
在我看来,将Json文件保存到设备存储将是最好的选择,如果您以后需要查询它,则必须进行序列化/反序列化,而如果您使用数据库,则可以快速查询数据和实例化模型对象等。如果可能的话,我建议您采用分层方法(使用存储库来填充View模型或Bloc等,并使用单独的DB Manager / Service等。