Background Realm

Background Realm 是一系列方便的类和扩展,使在后台使用 RealmSwift 更加容易。
它的主要目标是通过对现有的 Realm 和基于 Realm 的代码库进行微小的开销和重构,来增强它们。
注意:尽管此模块使在后台使用 Realm 更加方便,但它 并不 使 Realm 和其对象线程安全。它们仍然应该只在它们适当的线程中访问。
Specs
- RealmSwift 10.0.0+
- iOS 12+
- tvOS 12+
- watchOS 4+
- macOS 10.12+
- Swift 5.0+
Objective-C
有关 Objective-C 的等效部分,请参阅 BLBackgroundRealm。
在后台向 Realm 写入
在后台执行写事务变得和这样一样简单:
Realm.writeInBackground(configuration: <#T##Realm.Configuration?#>) { (result) in
<#code#>
}可选地,您可以设置一个默认的 backgroundConfiguration,它将在所有后台写事务中使用
Realm.Configuration.backgroundConfiguration = <#T##Realm.Configuration?#>
Realm.writeInBackground { (result) in
<#code#>
}最后,您可以轻松地将任何 Realm 实例移动到其后台对应版本
let realm = try Realm()
realm.writeInBackground { (result) in
<#code#>
}向后台 Realm 提交
类似于写操作,您可以将事务提交到后台的 Realm。不同的是,提交可以取消
Realm.commitInBackground(configuration: <#T##Realm.Configuration?#>) { (result) -> Bool in
<#code#>
return false //return true if you want to cancel this write operation
}您还可以从任何 Realm 实例移动到其后台对应版本
let realm = try Realm()
realm.commitInBackground { (result) -> Bool in
<#code#>
return false //return true if you want to cancel this write operation
}BackgroundRealm
Background Realm 提供了一个 BackgroundRealm 类,基本上
- 创建一个私有的
Thread和RunLoop,其中将打开新的后台Realm - 在私有线程中打开
Realm - 在后台线程中运行工作
如果您想
- 对
Realm进行计算密集型的更改,这将特别有用 - 在后台注册更改通知,不必立即触发 UI 更新
用法
- 使用
Realm.Configuration.backgroundConfiguration创建BackgroundRealm
let backgroundRealm = BackgroundRealm { (result) in
<#code#>
}- 使用自定义配置创建
BackgroundRealm
let backgroundRealm = BackgroundRealm(configuration: <#T##Realm.Configuration?#>) { (result) in
<#code#>
}- 使用文件
URL创建BackgroundRealm
let backgroundRealm = BackgroundRealm(fileURL: <#T##URL#>) { (result) in
<#code#>
}队列
BackgroundRealm 使用两个队列在后台处理事务
DispatchQueue.backgroundRealmOperationQueue.backgroundRealm
如果您想使用自己的队列,请在应用程序的生命周期中尽早设置它们。
安装
CocoaPods
pod 'BackgroundRealm', '~> 3.0'然后在需要的地方导入 import BackgroundRealm。
Carthage
github "BellAppLab/BackgroundRealm" ~> 3.0然后在需要的地方导入 import BackgroundRealm。
Swift 包管理器
.package(url: "https://github.com/BellAppLab/BackgroundRealm.git", from: "3.0.0")Git 子模块
cd toYourProjectsFolder
git submodule add -b submodule --name BackgroundRealm https://github.com/BellAppLab/BackgroundRealm.git然后,将 BackgroundRealm 文件夹拖入你的 Xcode 项目中。
作者
Bell App Lab, [email protected]
贡献
查看这里。
致谢
标志图像由mikicon提供,来源于Word Project
许可证
BackgroundRealm遵循MIT许可证。有关更多信息,请参阅LICENSE文件。

