【发布时间】:2015-02-26 15:39:35
【问题描述】:
我正在努力将 Realm 集成到 iOS 应用程序中,并开始编写一个类来处理我所有的 Realm 内容,并且正在编写一个方便的方法来动态更新任何 RLMObject。
在他们的文档中,更新对象很简单:
- (void)someMethod {
[self.realm beginWriteTransaction];
someObject.name = @"New name";
someObject.somethingElse = @"New something";
[self.realm commitWriteTransaction];
}
我想知道当您将 Realm 与 GCD 内容混合时,以下内容是否会起作用/是否会产生任何负面影响:
- (void)updateObjectAndCommitWithUpdateBlock:(dispatch_block_t)updateBlock {
[self.realm beginWriteTransaction];
updateBlock();
[self.realm commitWriteTransaction];
}
然后在另一个类中执行以下操作:
- (void)someMethod {
[[RealmManager sharedInstance] updateObjectAndCommitWithUpdateBlock:^{
someObject.name = @"New name";
someObject.somethingElse = @"New something";
}];
}
【问题讨论】:
-
你会遇到线程问题,因为这种方式不是线程安全的。
标签: ios objective-c grand-central-dispatch realm