ここで何かが欠けているかどうかはわかりません。
プロパティを更新した後、移行ブロックなしでアプリを実行するとクラッシュしました (ここと同じ問題Realm Migration not working )
しかし、アプリを実行すると、クラッシュすることはなくなりましたが、オブジェクトのプロパティが更新されないため、移行を実行する必要があります。
以下のオブジェクトを更新しました (「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 migrations in Swift ) (これは私ではありません!) しかし、現在は古くなっているように見えます (上記の解決策を試したことは確かです!)