Unrealm 1.9.5

Unrealm 1.9.5

[arturdev] 维护。



 
依赖
Realm>= 0
RealmSwift>= 0
运行时>= 0
 


Unrealm 1.9.5

Unrealm Header Logo



Swift 5.1 Build Status Version Platform License Platform Platform


Unrealm 允许您轻松地将 Swift 本地 结构体枚举 存储到 Realm
停止继承自 Object!追求协议导向编程!
❤️arturdev 制作



特点

Unrealm 支持以下类型

  • Swift 基本类型
  • Swift 结构体
  • Swift 类
  • Swift 枚举
  • Swift 数组
  • Swift 字典
  • 嵌套类/结构体
  • Swift 可选 (String, Data, Date)
  • 原语的可选 (Int, Float, Double, Bool)
  • Realmables 可选
  • 数组可选
  • 枚举数组

示例项目

要运行示例项目,首先克隆仓库,然后在 Example 目录中运行 pod install
也请参阅 单元测试

用法

您只需做的是

  1. 将您的类/结构体符合到《code>Realmable 协议而不是从《code>Object 继承。将您的枚举符合到《code>RealmableEnum 协议。
  2. 在 AppDelegate 的 didFinishLaunchingWithOptions 方法中注册您的类/结构体和枚举。
Realm.registerRealmables(ToDoItem.self)

就是这样!现在您可以像通常使用 Objc 类一样将结构体或类对象存储到 Realm 中。

优缺点

优点🎉

  • 支持您存储 Swift 原生类型(结构体、类、枚举、数组、字典等)
  • 避免从 Object 类继承带来的冗余
  • 避免出现《code>Object has been deleted or invalidated 等Realm崩溃问题
  • 避免出现《code>Realm accessed from incorrect thread 等Realm崩溃问题
  • 避免使用像 @objc dynamic var 这样的样板代码。只需使用 varlet
  • 避免使用像 RealmOptional<Int> 这样的样板代码。直接使用 Int?
  • 完美兼容 Swift 的 Codable 和可选类型!

缺点🍟

  • 失去了“实时对象”功能。这意味着当您修改从 Realm 获取的对象时,其他对象将不会自动更新。因此,在修改对象后,您应手动在 realm 中更新它。例如:
let realm = try! Realm()
var todoItem = realm.object(ofType: ToDoItem.self, forPrimaryKey: "1")
todoItem.text = "Modified text"
try! realm.write {
realm.add(todoItem, update: true) //<- force Realm to update the object
}

安装

CocoaPods

Unrealm 可以通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中

pod 'Unrealm'

Swift 包管理器

您还可以使用 Swift 包管理器将 Unrealm 添加为项目的依赖项。为此,请使用以下 URL

https://github.com/arturdev/Unrealm.git

您需要使用“master”分支而不是 SPM。

待办事项

  • 添加更多单元测试
  • 当依赖项可以添加到简单项目中的多个目标时,为 Swift 包管理器创建一个示例项目。

贡献

⭐️如果您喜欢看到的内容,请在 GitHub 上为我们评分。

找到错误、打印错误,或有不好的文档说明?我们很高兴您能打开一个问题,告诉我我可以做些什么来改进!

欢迎贡献,并且我们会非常感激!

作者

arturdev,[email protected]

许可证

Unrealm 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。