前言

在了解Realm之前,建议了解一下使用文档

了解一下Object、Results、List、LinkingObjects的概念

从Realm到UnRealm

在Realm中存储对象,都需要是class类型(来满足Realm的即时更改,我们在基础课中学习过class是引用传递)

属性支持:BoolIntDoubleFloatStringDateData,由于Data的特殊性,我们可以利用Data来存储各种特殊的类型例如ImageColorStruct等等

Realm的基础使用可以参考这篇文章:https://juejin.im/post/6844904117442215944

更加深入一些:https://juejin.im/post/6844904117446377480#heading-60

but!这似乎太过麻烦了,为了一个对象我们需要实现一个Class并且加上复杂的init方法以及难以维护(代码量大)的属性设定。

image-20200831171815407

于是可以使用UnRealm这个库:https://github.com/arturdev/Unrealm

看看简介,Awesome

image-20200831172213792

只要让你的class或者struct遵循Realmable协议,那么就可以像一个正常对象去存储和使用,唯一的缺点就是原来Realm数据库支持的实时更新特性不存在了(Class是引用传递,因此取出一个对象后,对属性进行更改,数据库中的对象属性也会跟着更改)

后记

虽然UnRealm还难免有些不完整(add数组没有写泛型,需要自己写for循环)但是也是一个帮助很大的第三方库,RealmBrowser的帮助能够直观地看到数据分布,也是非常好用!