我正在使用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浏览器中的属性,该属性也没有更新。(它总是错误的。)
请帮忙。
答案 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];