更新克隆对象问题 Realm.io
Updating Cloned object issue Realm.io
我已经克隆了一个带有主键的 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" 子项也会更新
如 Realm's GitHub repo 中提交的相同问题所述:
Realm 尚不支持在使用 initWithValue:
时创建链接对象的独立副本
我们目前正在开发此功能,并在此拉取请求上取得进展:https://github.com/realm/realm-cocoa/pull/2043
同时,您必须手动执行复制以创建链接对象的副本。
此外,作为提醒,交叉发布问题是没有必要的。我们跟踪 SO 和 GitHub 问题。只发一个地方方便我们快速回复!
我已经克隆了一个带有主键的 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" 子项也会更新
如 Realm's GitHub repo 中提交的相同问题所述:
Realm 尚不支持在使用 initWithValue:
我们目前正在开发此功能,并在此拉取请求上取得进展:https://github.com/realm/realm-cocoa/pull/2043
同时,您必须手动执行复制以创建链接对象的副本。
此外,作为提醒,交叉发布问题是没有必要的。我们跟踪 SO 和 GitHub 问题。只发一个地方方便我们快速回复!