嗨,我正在用 Realm 做一个项目,现在有了它的新版本,我不断收到“对象已经在领域中持久化”
发生这种情况是因为我试图保存一个已经存在于不同领域的对象。(这是我看完文档后得出的结论)
但实际上我只有一个 Realm,默认的一个。
对于每个添加或更新领域,我正在创建一个线程。在那个线程上我有:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
NSString *PlaceId = [placeInfoDic objectForKey:@"PlaceId"];
RLMArray *placeArr = [Place objectsWhere:@"PlaceId = %@",PlaceId];
Place *place;
if (placeArr.count > 0) {
place = [placeArr objectAtIndex:0];
}
else {
place = [[Place alloc] init];
place.PlaceId = PlaceId;
}
[realm addOrUpdateObject:place];
[realm commitWriteTransaction];
});
PlaceId 是我模型的主键。
提前谢谢!