Realm Cocoa无法更新领域对象的属性

时间:2016-10-31 10:06:16

标签: realm

我正在使用Realm Cocoa并遇到一个问题,我无法更新领域对象的属性,

RLMRealm *realm = [RLMRealm defaultRealm];

SomeObject *obj = [SomeObject objectForPrimaryKey: objectID];
if(obj){
  NSError *error;
  [realm transactionWithBlock:^{
    obj.someProperty = @YES;
  } error: &error];
}

SomeObject是RLMObject的子类,someProperty是RLMBool类型的属性

NSNumber<RLMBool> *someProperty

我检查了nil的错误,这意味着事务已成功。 但someObject永远不会按预期更新。

我还检查了Realm浏览器中的属性,该属性也没有更新。(它总是错误的。)

请帮忙。

2 个答案:

答案 0 :(得分:1)

对这个问题感到抱歉,我刚刚发现我在另一个线程中意外地将someProperty修改为@NO,这可能发生在问题中的代码块之后,代码块实际上正在按预期工作。也许我不应该在开始时怀疑Realm。

答案 1 :(得分:-1)

您应该在事务块内执行查询。

  RLMRealm *realm = [RLMRealm defaultRealm];

  NSError *error;
  [realm transactionWithBlock:^{
    SomeObject *obj = [SomeObject objectForPrimaryKey: objectID];
    if(obj) {
        obj.someProperty = @YES;
    }
    // are you sure your object exists?
  } error: &error];