我已经克隆了一个带有主键的RealmObject,它已被创建好了,但是当我更新时 一个来自克隆对象的孩子,原来的孩子也更新了,我怎样才能更新克隆对象?
Model *originalModel =[[Model allObjects] firstObject]; //original model
Model *cloneModel = [[Model alloc] initWithValue:originalModel]; //clone model
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
cloneActivity.uuid = @"new uuid";
for (ScreenModel *page in cloneActivity.screens) {
//this line is also updating the original object
page.execution_uuid = @"new uuid";
}
[ActivityTreeModel createInRealm:realm withValue:cloneModel];
[realm commitWriteTransaction];
当我做一个简单的更新所有" originalModel"孩子们也得到了更新
答案 0 :(得分:0)
正如Realm's GitHub repo中提交的同一问题所述:
使用initWithValue:
时,Realm还不支持创建链接对象的独立副本
我们目前正在处理此功能,此拉取请求已取得进展:https://github.com/realm/realm-cocoa/pull/2043
同时,您必须手动执行复制以创建链接对象的副本。
此外,由于没有必要对问题进行交叉发布。我们跟踪SO和GitHub问题。仅发布到一个地方使我们更容易快速回答!