在领域迁移过程中创建领域对象
问题描述:
您是否能够在迁移过程中创建领域对象?我想要提取现有领域对象的一部分并使用该数据创建一个新对象,但迁移总是会挂起。这是我的迁移代码在领域迁移过程中创建领域对象
private class var migrationBlock: MigrationBlock {
return { migration, oldSchemaVersion in
if oldSchemaVersion < 1 {
print("Shema Version 0")
migration.enumerate(Transaction.className(), { (oldObject, newObject) -> Void in
let oldDate = oldObject!["date"] as! NSDate
let newTransactionDate = TransactionDate()
newTransactionDate.date = oldDate
try! Realm.getRealm().write { Realm.getRealm().add(newTransactionDate, update: true) }
newObject!["_date"] = newTransactionDate
})
}
}
}
答
您可以使用Migration.create(_:value:)
在迁移过程中创建对象。
它返回MigrationObject
的实例。所以你应该使用下标来为它的属性赋值。
let oldDate = oldObject!["date"] as! NSDate
let newTransactionDate = migration.create(TransactionDate.className())
newTransactionDate["date"] = oldDate
newObject!["_date"] = newTransactionDate