【问题标题】:Delete a Realm model with Swift使用 Swift 删除 Realm 模型
【发布时间】:2016-07-16 03:35:04
【问题描述】:

我需要从 Realm Cocoa 数据库中删除旧的空模型。

似乎有a way to do it in Java,但在 Swift 中没有。对吗?

如果你删除一个属性并启动迁移,Realm 将删除表中的相应列:

class Dog: Object {
  dynamic var name = ""
  // dynamic var age = 0
}

但是,如果您完全删除模型定义,则迁移不会删除表:

// class Dog: Object {
//   dynamic var name = ""
//   dynamic var age = 0
// }

这是来自 Realm Browser 的屏幕截图,显示了我要删除的空表:

【问题讨论】:

    标签: swift realm


    【解决方案1】:

    您可以在迁移块中调用 Migration.deleteData(_:) 来指定应从您的 Realm 文件中完全删除命名类。

    【讨论】:

    • 谢谢!效果很好。此外,如果其他人发现了这一点,请不要忘记删除您的模型定义。否则,即使在调用 Migration.deleteData(_:) 之后,您仍然会得到空表。
    【解决方案2】:

    对于那些使用 JavaScript 的人:

    migration: (oldRealm, newRealm) => {
      if (oldRealm.schemaVersion < *version*) {
        newRealm.deleteModel('MODEL-NAME')
      }
    }
    

    【讨论】:

    • 请将此作为完整的答案,而不仅仅是没有解释的代码答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 2018-07-11
    相关资源
    最近更新 更多