BLBackgroundRealm
BLBackgroundRealm 是一系列便捷的类和扩展,使在后台与 RLMRealm
一起工作时更加容易。
其主要重点是在无需大量开销和重构的情况下,增强现有的 RLMRealm
和基于 Realm 的代码库。
注意:尽管此模块使得在后台使用 RLMRealm
更加方便,但它并不使 RLMRealm
以及其对象线程安全。它们仍然应该在适当的线程内访问。
Specs
- Realm 3.0.0+
- iOS 9+
- tvOS 10+
- watchOS 3+
- macOS 10.10+
Swift
有关 Swift 的对应版本,请参阅 BackgroundRealm。
在后台写入 Realm
在后台提交写入事务变得和以下一样简单:
[RLMRealm writeInBackgroundWithConfiguration:<#(nonnull RLMRealmConfiguration *)#>
andBlock:^(RLMRealm * _Nullable realm, BLBackgroundRealmError * _Nullable error)
{
<#code#>
}];
可选地,您可以为所有后台写入事务设置一个默认的 backgroundConfiguration
RLMRealmConfiguration *config = [[RLMRealmConfiguration alloc] init];
config.fileURL = url;
[RLMRealmConfiguration setBackgroundConfiguration:config];
[RLMRealm writeInBackgroundWithBlock:^(RLMRealm * _Nullable realm, BLBackgroundRealmError * _Nullable error) {
<#code#>
}];
最后,您可以轻松地从任何 Realm
实例移动到其后台对应版本
RLMRealm *realm = [RLMRealm defaultRealm];
[realm writeInBackgroundWithBlock:^(RLMRealm * _Nullable realm, BLBackgroundRealmError * _Nullable error) {
<#code#>
}];
Realm
后台 后台 Realm 暴露了一个 BLBackgroundRealm
类,它基本上
- 创建了一个私有的
NSThread
和NSRunLoop
,在这里将打开一个新的后台RLMRealm
- 在私有线程中打开了一个
RLMRealm
- 在后台线程中运行工作
如果您想进行以下操作,这将特别有用:
- 对
RLMRealm
执行计算量大的更改 - 在后台注册更改通知,而不 necessarily 触发立即的 UI 更新
用法
- 使用
[RLMConfiguration backgroundConfiguration]
创建BLBackgroundRealm
BLBackgroundRealm *bgRealm = [BLBackgroundRealm backgroundRealmWithBlock:^(RLMRealm * _Nullable realm, BLBackgroundRealmError * _Nullable error) {
<#code#>
}];
- 使用自定义配置创建
BLBackgroundRealm
[BLBackgroundRealm backgroundRealmWithConfiguration:<#(nonnull RLMRealmConfiguration *)#>
andBlock:^(RLMRealm * _Nullable realm, BLBackgroundRealmError * _Nullable error)
{
<#code#>
}];
- 使用文件
NSURL
创建BLBackgroundRealm
[BLBackgroundRealm backgroundRealmWithFileURL:<#(nonnull NSURL *)#>
andBlock:^(RLMRealm * _Nullable realm, BLBackgroundRealmError * _Nullable error)
{
<#code#>
}];
安装
Cocoapods
pod 'BLBackgroundRealm', '~> 1.0'
然后,在需要的地方 #import <BLBackgroundRealm/BLBackgroundRealm.h>
。
Carthage
github "BellAppLab/BLBackgroundRealm" ~> 1.0
然后,在需要的地方 #import <BLBackgroundRealm/BLBackgroundRealm.h>
。
Git Submodules
cd toYourProjectsFolder
git submodule add -b submodule --name BLBackgroundRealm https://github.com/BellAppLab/BLBackgroundRealm.git
然后,将 BLBackgroundRealm
文件夹拖到您的 Xcode 项目中。
代码分支
当对代码分支进行操作时,请确保下载 Realm 框架并将其手动添加到项目中。
作者
贝尔应用实验室,[email protected]
贡献
查看这本指南。
致谢
许可协议
BackgroundRealm 在 MIT 许可协议下可用。有关更多信息,请参阅 LICENSE 文件。