美文网首页
iOS 数据存储(六) -持久化 Realm

iOS 数据存储(六) -持久化 Realm

作者: 搬砖的crystal | 来源:发表于2022-07-29 14:57 被阅读0次

    一、简介

    Realm 并不是基于 Core Data ,也不是基于 SQLite 所构建的。它拥有自己的数据库存储引擎,可以高效且快速地完成数据库的构建操作。Realm可以轻松地移植到项目当中,并且绝大部分常用的功能(比如说插入、查询等等)都可以用一行简单的代码轻松完成!目前支持 Objective-C、Swift 和 Java 三种语言,也就是说能在 iOS、Android 和 Mac 上面跨平台使用。
    Realm 使用方面:相比于 SQLite,Core Data 使用起来更加简单,更易入门。
    Realm 比使用 SQLite 要快,比 ORM 要快很多。 简单。通过标注和对象操作实现数据操作。 版本升级时,数据迁移成本很低。 与 rxjava、retrofit 等 Library 有很好的交互。

    Realm 是为移动端开发定制的全功能数据库,可以将原生对象直接映射到 Realm 的数据库引擎(远不仅是一个键值对的存储)。

    RLMRealmRLMRealm 是框架的核心所在,是我们构建数据库的访问点,就如同 Core Data 的管理对象上下文( managed object context )一样。出于简单起见, realm 提供了一个名为 defaultRealm 的单例,在本教程中我们就仅使用这个单例来完成我们所需的功能。当然,我们也可以导入外部已经编写好的 realm 数据库文件,也可以在我们不需要将数据保存在硬盘上时使用 “ 内存实例对象 ” ( in-memory realm instance ),此外,还可以同时使用多个数据库文件。

    RLMObject :这是我们自定义的 realm 数据模型。创建数据模型的行为将会影响到数据库的结构。要创建一个数据模型,我们只需要继承 RLMObject ,然后设计我们想要存储的属性即可。

    关系 (Relationships) :通过简单地在数据模型中声明一个 RLMObject 类型的属性,我们就可以创建一个 “ 一对多 ” 的对象关系。同样地,借助 RLMArray我们还可以创建 “ 多对一 ” 和 “ 多对多 ” 的关系。

    写操作事务 (Write Transactions) :数据库中的所有操作,比如创建、编辑,或者删除对象,都必须在事务中完成。 “ 事务 ” 是指位于 beginWriteTransaction() 以及 commitWriteTransaction() 操作之间的代码段。

    查询 (Queries) :要在数据库中检索信息,我们需要用到 “ 检索 ” 操作。检索最简单的形式是对 RLMObject 对象发送 allObjects() 消息。如果需要检索更复杂的数据,那么还可以使用断言( predicates )、复合查询以及结果排序等等操作。

    RLMResults :这个类是执行任何查询请求后所返回的类,其中包含了一系列的 RLMObjects 对象。和 NSArray 类似,我们可以用下标语法来对其进行访问,并且还可以决定它们之间的关系。不仅如此,它还拥有许多更强大的功能,包括排序、查找等等操作。

    二、使用

    1.引入
    (1)导入方式一:CocoaPods

    在 Podfile 中,添加 pod 'Realm'

    (2)手动导入

    下载 Realm 的最新发布版本,并解压;
    将 Realm.framework 从 ios/static/ 文件夹拖曳到项目中;
    在 Xcode 文件导航器中选择您的项目,然后选择您的应用目标,进入到 ** Build Phases** 选项卡中。在 Link Binary with Libraries 中单击 + 号然后添加 libc++.tbd 以及 libz.tbd。

    存取的对象都要继承自RLMObject,创建时可以如下选择:

    2.使用

    相关文章

      网友评论

          本文标题:iOS 数据存储(六) -持久化 Realm

          本文链接:https://www.haomeiwen.com/subject/altxwrtx.html