iOS 块中的领域更新对象
iOS Realm Update Object In Block
我正在努力将 Realm 集成到一个 iOS 应用程序中,并开始编写一个 class 来处理我所有的 Realm 内容,并且正在编写一个方便的方法来动态更新任何 RLMObject .
在他们的文档中,更新对象非常简单:
- (void)someMethod {
[self.realm beginWriteTransaction];
someObject.name = @"New name";
someObject.somethingElse = @"New something";
[self.realm commitWriteTransaction];
}
我想知道当您将 Realm 与 GCD 内容混合使用时,以下内容是否会 work/have 任何负面后果:
- (void)updateObjectAndCommitWithUpdateBlock:(dispatch_block_t)updateBlock {
[self.realm beginWriteTransaction];
updateBlock();
[self.realm commitWriteTransaction];
}
然后在另一个 class 中执行以下操作:
- (void)someMethod {
[[RealmManager sharedInstance] updateObjectAndCommitWithUpdateBlock:^{
someObject.name = @"New name";
someObject.somethingElse = @"New something";
}];
}
来自realm.io:
Sharing RLMRealm instances across threads is not supported.
因此,您需要使用
RLMRealm *realm = [RLMRealm defaultRealm];
在每个线程中。
如果您更喜欢方块,请使用标准方块:
[realm transactionWithBlock:^{
//your code
}];
我正在努力将 Realm 集成到一个 iOS 应用程序中,并开始编写一个 class 来处理我所有的 Realm 内容,并且正在编写一个方便的方法来动态更新任何 RLMObject .
在他们的文档中,更新对象非常简单:
- (void)someMethod {
[self.realm beginWriteTransaction];
someObject.name = @"New name";
someObject.somethingElse = @"New something";
[self.realm commitWriteTransaction];
}
我想知道当您将 Realm 与 GCD 内容混合使用时,以下内容是否会 work/have 任何负面后果:
- (void)updateObjectAndCommitWithUpdateBlock:(dispatch_block_t)updateBlock {
[self.realm beginWriteTransaction];
updateBlock();
[self.realm commitWriteTransaction];
}
然后在另一个 class 中执行以下操作:
- (void)someMethod {
[[RealmManager sharedInstance] updateObjectAndCommitWithUpdateBlock:^{
someObject.name = @"New name";
someObject.somethingElse = @"New something";
}];
}
来自realm.io:
Sharing RLMRealm instances across threads is not supported.
因此,您需要使用
RLMRealm *realm = [RLMRealm defaultRealm];
在每个线程中。
如果您更喜欢方块,请使用标准方块:
[realm transactionWithBlock:^{
//your code
}];