RealmLess 2.1.0

RealmLess 2.1.0

Novo 维护。



RealmLess 2.1.0

  • 作者:
  • Meterwhite

RealmLess

描述

  • Solutions to simplify Realm(ObjC) transactions.(简化 Realm(ObjC) 事务的解决方案)
  • 没有 beginWriteTransaction,没有 commitWriteTransaction,没有 __block。您可以在任何方法中返回。级别嵌套提交的事务不会抛出异常。
  • 对于那些不太熟悉 realm 的开发者,使用 realmless 可以避免许多错误。
  • 给个 star 帮我积德。
  • Swift

CocoaPods

pod 'RealmLess'

Header

#import <RealmLess/Realm--.h>

RealmLess 事务作用域

  • 任何 {} 都是一个作用域,这对于本项目非常非常重要,在正常情况下这一般会被遗忘。

    任何地方书写的{}都是作用域,这对于本项目非常重要。在平常这却常常被忽略。

  • 无界域事务将在离开当前作用域时提交。

    写事务将在离开当前作用域时自动提交。

  • 无界域变量 rll_realm 在 Realm-- 作用域中提供,以确保所有操作的可能性。

    在 Realm-- 作用域中提供了 realm 变量 rll_realm,以确保所有操作的可能性。

  • 在无界域作用域中可以进行嵌套而不会抛出异常,嵌套的作用域将被合并。这解决了大问题。

    在无界域作用域中可以嵌套而不会抛出异常,并且嵌套的作用域将被合并。这解决了一个大问题。

基本无界域作用域(写作用域)

@realm_writing_scope
[rll_realm addObject:YourObject];

无界域更新作用域(更新或添加作用域)

@realm_update_scope
[rll_realm addObject:YourObject];
RLLUpdate_obj = YourObject;

无界域添加作用域(添加作用域)

@realm_add_scope
RLLAdd_obj = YourObject;

无界域删除作用域(删除作用域)

@realm_delete_scope
RLLDelete_obj = YourObject;

无界域事务池/作用域池

  • 提交池定义确保离开池作用域时提交事务到默认 Realm。在提交池中可以使用变量 realm(默认 Realm)。
  • 提交池确保了离开作用域时将事务提交到默认 Realm。在提交池内可以使用变量realm(默认 Realm)。

Realm 写作池

@realm_writing_pool({
    [rll_realm addObject:YourObject];
});

RealmLess 更新池

@realm_update_pool({
    ...
});

RealmLess 添加池

@realm_add_pool({
    ...
});

RealmLess 删除池

@realm_delete_pool({
    ...
});

切换 realm 变量(切换 realm 文件)

  • 更改当前作用域中的 realm 变量。它将尝试提交之前的交易。

    在当前作用域内使用新的 realm 变量,这将提交之前的事务。

@realm_writing_scope
...
@realm_switch(New Realm);
...

嵌套

{ @realm_writing_scope
  (第一段事务 / First transaction)
  @realm_commit_up // The first transaction takes effect immediately so that the changes can be queried in the second transaction / 第一段事务立即生效从而可以在第二段事务中查询到变更
  (第二段事务 / Second transaction)
  @realm_commit_up
  (第三段事务 / Third transaction)
}


@realm_writing_pool({
    (第一段事务 / First transaction)
    @realm_commit_up // The first transaction takes effect immediately so that the changes can be queried in the second transaction / 第一段事务立即生效从而可以在第二段事务中查询到变更
    (第二段事务 / Second transaction)
});

使用 RealmLess 作用域对象

{
    RLLScopeObj(rll);
    [rll.realm addObject:obj];
    [rll nestedCommit];
    [rll.realm addObject:obj];
    [rll nestedCommit];
}