在迁移期间无法将“RealmSwift.DynamicObject”类型的值转换为MyCustomObject

时间:2015-10-26 04:37:59

标签: swift2 xcode7 realm realm-migration

getPlayer = revAr[which].trim();期间,我想从RealmSwift migration迁移到dynamic var customObject: CustomObjectlet customObjectList = List<CustomObject>()的类型为CustomObject

这是迁移中的代码块

Object
  

无法将'RealmSwift.DynamicObject'(0x1015c82d0)类型的值转换为'AppName.CustomObject'(0x1006e5550)。

我如何实现我想要的?目前我能想到的是创建一个CustomObject&amp;手动为其分配值。

编辑1

我想将一个primaryKey添加到CustomObject。我一直收到重复的主键错误,我很确定分配的密钥是唯一的。

  

致命错误:'试试!'表达式意外地引发了错误:Error Domain = io.realm Code = 0“主键属性'resultKey'在迁移后具有重复值。”

let newList = List<CustomObject>()
if oldObject!["customObject"] != nil {

   print(oldObject!["customObject"])                  
   var obj = oldObject!["customObject"]
   var result: CustomObject = obj as! CustomObject //Crash
   farList.append(result)
}

newObject!["customObjectList"] = newList

编辑2

  

我设法通过使 migration.deleteData(CustomObject.className()) if oldObject!["customObject"] != nil { let oldSubFar = oldObject!["customObject"] as! MigrationObject var newFarDict = oldSubFar.dictionaryWithValuesForKeys(["firstName","secondName"]) newFarDict["resultKey"] = NSUUID().UUIDString + "v1" let newSubFar = migration.create(CustomObject.className(), value: newFarDict ) print(newSubFar) //its the updated object that i want let subFarList = newObject!["customObjectList"] as! List<MigrationObject> subFarList.append(newSubFar) } 不是主键来弄清楚错误是什么。该应用运行完美,当我打开resultKey查看值时,.realm下有一些""字段 - &gt;重复的主键。 &GT;&LT;

1 个答案:

答案 0 :(得分:5)

我认为你想做的事情就像是:

如果需要,删除所有if(!$query){ echo("Error description: " . mysqli_error($con)); } 数据,因为迁移列表对象无法附加现有对象。

然后,您可以枚举CustomObject个对象,并从User的属性创建每个CustomObject。新的User对象具有User属性,然后将customObject对象附加到列表中。

CustomObject