我有一个应用程序,用户可以拍照,保存并上传到数据库。电话看起来像这样:
- (void)saveImage {
// Create object
Image *img = [[Image alloc] init];
img.data = self.imageData;
// Get the default Realm
RLMRealm *realm = [RLMRealm defaultRealm];
// Add to Realm with transaction
[realm beginWriteTransaction];
[realm addObject:img];
[realm commitWriteTransaction];
[self.client uploadImages:@[self.jpeg] completion:^(NSDictionary *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
[realm beginWriteTransaction];
img.uploaded = @YES;
[realm commitWriteTransaction];
}
}];
}
如果我在另一个视图控制器中有Image
个对象数组RLMResults<Image *> *imgs = [Image allObjects];
,那么当该块返回时,Realm会自动更新图像吗?或者我是否需要再进行一次查询来更新它?
答案 0 :(得分:0)
在另一个视图控制器中,当该块返回时,Realm会自动更新图像吗?
是的,如果在其他线程中提交事务,则会自动更新Realm对象。
文档在这里:https://realm.io/docs/objc/latest/#auto-updating-objects
可能会延迟,因为更改将反映在每个运行循环中。跟踪更改的最佳做法是,您应订阅Realm notifications以了解对象中的Realm数据何时更新,以指示应何时刷新应用的UI。