Создать объект области во время миграции области

Можете ли вы создать объект области во время миграции? Я хочу извлечь часть существующего объекта области и создать новый объект с этими данными, но миграция всегда зависает. Вот мой код миграции

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
            })
        }
    }
}

1 ответ

Решение

Ты можешь использовать Migration.create(_:value:) создать объект во время миграции.

https://realm.io/docs/swift/latest/api/Classes/Migration.html

Возвращается MigrationObjectэкземпляр. Поэтому вы должны использовать подписку, чтобы присвоить значение его свойству.

let oldDate = oldObject!["date"] as! NSDate

let newTransactionDate = migration.create(TransactionDate.className())
newTransactionDate["date"] = oldDate

newObject!["_date"] = newTransactionDate
Другие вопросы по тегам