由于 Realm 本地数据库中出现以下错误,需要迁移

问题描述 投票:0回答:1

在 didFinishLaunchingWithOptions 方法中调用此函数。

func updateLocalDB(){
    do {
        let realm = try Realm()
        realm.invalidate()
    } catch let error {
        print(error)
        let fileManager = FileManager.default
        let realmFileUrl = Realm.Configuration.defaultConfiguration.fileURL
        try! fileManager.removeItem(at: realmFileUrl!)
    }
}

错误信息

2023-05-10 15:18:26.718505+0530[5703:235824]
Realm 10.39.1 版本现已发布:
https://github.com/realm/realm-swift/blob/v10.39.1/CHANGELOG.md/DatabaseHelper.swift:17

/DatabaseHelper.swift:17: 致命错误:“试试!”表达式意外引发错误:Error Domain=io.realm Code=10 “由于以下错误,需要迁移:

  • 属性“GenerateOTPModel.lockcode”已被删除。
  • 属性“GenerateOTPModel.wifilockdevicecode”已被删除。
  • 属性“GenerateOTPModel.wifilockdeviceid”已被删除。“UserInfo={NSLocalizedDescription=由于以下错误需要迁移:
  • 属性“GenerateOTPModel.wifilockdeviceid”已被删除。错误代码=10} 2023-05-17 11:40:23.904268+0530[21018:103643]/DatabaseHelper.swift:17: 致命错误:“试试!”表达式意外引发错误:Error Domain=io.realm Code=10 “由于以下错误,需要迁移:
  • 属性“GenerateOTPModel.lockcode”已被删除。
  • 属性“GenerateOTPModel.wifilockdevicecode”已被删除。
ios swift realm realm-embedded-object
1个回答
-2
投票

那是因为

try!
。使用
try

func updateLocalDB(){
    do {
        let realm = try Realm()
        realm.invalidate()
    } catch let error {
        print(error)
        let fileManager = FileManager.default
        let realmFileUrl = Realm.Configuration.defaultConfiguration.fileURL
        try fileManager.removeItem(at: realmFileUrl!)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.