gpt4 book ai didi

swift - Realm - 从迁移 block 中的 Realm 删除对象

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:57 24 4
gpt4 key购买 nike

我需要在迁移期间从 Realm 中删除对象。

我有一个 AccountManager,其中包含:

func logOut() {
let realm = try! Realm()
try! realm.write {
realm.delete(realm.objects(Account.self))
realm.delete(realm.objects(Address.self))
... // Other deletions
}
}

但每当我在迁移 block 中使用 logOut() 函数时,它就会失败。

    let config = Realm.Configuration(
schemaVersion: 11,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 11) {
// Delete objects from realm
AccountManager().logOut() // DOESN'T WORK
}
})

Realm.Configuration.defaultConfiguration = config

我绝对需要用户在此更新后重新登录 - 有什么方法可以在迁移 block 中执行这些删除操作吗?

最佳答案

您可以使用 Migration.deleteData(forType typeName: String) 代替 Realm.delete(_:),如下所示。

Realm.Configuration(schemaVersion: 11, migrationBlock: { migration, oldSchemaVersion in
if oldSchemaVersion < 11
migration.deleteData(forType: Account.className)
migration.deleteData(forType: Address.className)
...

关于swift - Realm - 从迁移 block 中的 Realm 删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40382005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com