BackgroundRealm 3.0.0

BackgroundRealm 3.0.0

Bell App Lab维护。



 
依赖项
Realm~> 10.0
RealmSwift~> 10.0
 


Background Realm Version License

Platforms Swift support CocoaPods Compatible Carthage compatible SwiftPM compatible Twitter

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 类,基本上

  1. 创建一个私有的 ThreadRunLoop,其中将打开新的后台 Realm
  2. 在私有线程中打开 Realm
  3. 在后台线程中运行工作

如果您想

  • 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.backgroundRealm
  • OperationQueue.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文件。