稀土 2017-12-21
在前面的三个阶段,我们分别实现的功能:
总之: 我们实现了面向模型的数据库增删查改,以及数据库升级。感觉功能实现得差不多了,但是如果存得模型得成员变量里面包含了另外得模型或者数组、字典,那么我们就没法存了。我们要解决他,这就是本篇要做的。
本篇我们要实现:复杂数据类型的存储,比如自定义对象、数组、字典等......然后我们还要实现模型嵌套模型,数组、字典嵌套模型以及各种相互嵌套的情况。 本篇思路有点绕,需要沉着冷静并且实践才行。先看一下我们最终实现的结果,我们向数据库内存储一个非常复杂的模型:
插入数据库是成功的,但是插入成功不重要,重要的是,你取出来的时候,他是不是插入之前的样子,下面我们进行数据库查询,得到以下结果:从得到的结果来看,各种类型嵌套的模型,我们能过完美的插入数据库,同时,我们也能完美将它从数据库取出来并且还原为模型,灰常的牛逼。这个一定是我们比FMDB,Realm这种航母级别的优势所在。你是不是迫不及待的想知道这是如何实现的?下面会一一讲解。在实现功能之前,我们一定要先考虑一下实现方式,考虑好了再开始动手,先看一下前辈们是如何做的,看过之后我们总结出两个方式:
最终我们使用第二种方式。接下来,我们逐条实现对应的功能,过程会比较绕逻辑,讲得不太明白的建议直接看代码,反正是绕了我挺久的