BLBackgroundRealm 1.0.5

BLBackgroundRealm 1.0.5

Bell App Lab 维护。




BLBackgroundRealm Version License

Platforms CocoaPods Compatible Carthage compatible Twitter

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

  1. 创建了一个私有的 NSThreadNSRunLoop,在这里将打开一个新的后台 RLMRealm
  2. 在私有线程中打开了一个 RLMRealm
  3. 在后台线程中运行工作

如果您想进行以下操作,这将特别有用:

  • 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]

贡献

查看这本指南

致谢

标志图片mikicon 创作,来自 名词项目

许可协议

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