Не знаю, упустил ли я что-то здесь.
Я получил сбой после запуска моего приложения без блока миграции после обновления свойства (та же проблема, что и здесь Realm Migration не работает )
Но теперь, когда я запускаю приложение, оно должно запустить миграцию, потому что оно больше не падает, но свойства моего объекта не обновляются.
Я обновил приведенный ниже объект (добавлен "minReps"):
class ExerciseGeneratorObject: Object {
@objc dynamic var name = ""
@objc dynamic var minReps = 0
@objc dynamic var maxReps = 0
convenience init(name: String, minReps: Int, maxReps: Int) {
self.init()
self.name = name
self.minReps = minReps
self.maxReps = maxReps
}
Затем я запускаю пустой блок миграции, как это в appDelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let config = Realm.Configuration(
schemaVersion: 3,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 3) {
}
})
Realm.Configuration.defaultConfiguration = config
let realm = try! Realm()
Я думал, что Realm предназначен для автоматического обновления свойств объекта, если вы запускаете пустой блок миграции - это неправильно? Мне не хватает кода, чтобы заставить это работать?
Здесь очень похожая проблема ( Миграция областей в Swift ) (это не я!), Но выглядит устаревшей сейчас (и я уверен, что я попробовал решения там, как указано выше!)