【问题标题】:How to clone a object with primary key in Realm.io (objective-c)如何在 Realm.io 中使用主键克隆对象(objective-c)
【发布时间】:2015-05-20 17:40:02
【问题描述】:

我有一个对象模型,有一个主键,我想用另一个主键克隆那个对象,但是 realm.io 说“这个对象已经存在” 主键和第一个对象不一样

  RLMRealm *realm = [RLMRealm defaultRealm];
  [realm beginWriteTransaction];

  ActivityTreeModel *originalActivity = [ActivityTreeModel objectForPrimaryKey:activityUuid];
  ActivityTreeModel *cloneActivity = originalActivity;
  NSString *primaryKey = [NSString stringWithFormat:@"%@+%@",[originalActivity uuid], executionUuid ];

  @try {
       cloneActivity.uuid = primaryKey;
       cloneActivity.execution_uuid = executionUuid;
  }
  @catch (NSException *exception) {
        NSLog(@"error de realm %@",exception);
  }
  @finally {

  }

  [ActivityTreeModel createOrUpdateInRealm:realm withValue:cloneActivity];
  [realm commitWriteTransaction];

有什么想法吗?

【问题讨论】:

    标签: ios objective-c realm


    【解决方案1】:

    创建一个新的ActivityTreeModel 对象:[[ActivityTreeModel alloc] init],然后将其所有属性设置为您要复制的对象,但使用不同的主键。

    【讨论】:

    • 但我必须做 cloneActivity = originalActivity;因为我想要与原始活动相同但使用新的主键,或者我必须从原始活动中一一设置所有属性?
    • 与 cloneActivity = originalActivity 一起工作正常;用你的答案创建一个带有新主键的新对象!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 2011-05-15
    • 2011-02-04
    • 2013-07-17
    • 2014-09-16
    相关资源
    最近更新 更多