Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Realm.io(objective-c)中克隆主键为主键的对象_Ios_Objective C_Realm - Fatal编程技术网

Ios 如何在Realm.io(objective-c)中克隆主键为主键的对象

Ios 如何在Realm.io(objective-c)中克隆主键为主键的对象,ios,objective-c,realm,Ios,Objective C,Realm,我有一个对象模型,有一个主键,我想用另一个主键克隆这个对象,但realm.io说“这个对象已经存在” 主键与第一个对象不同 RLMRealm *realm = [RLMRealm defaultRealm]; [realm beginWriteTransaction]; ActivityTreeModel *originalActivity = [ActivityTreeModel objectForPrimaryKey:activityUuid]; ActivityTreeM

我有一个对象模型,有一个主键,我想用另一个主键克隆这个对象,但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];

有什么想法吗?

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

但我必须执行cloneActivity=originalActivity;因为我希望与原始活动相同,但有一个新的主键,或者我必须从原始活动中逐个设置所有属性?克隆活动=原始活动是否正常工作;根据您的答案,使用新主键创建新对象!