在领域 Swift 中截断 table

Truncate table in Realm Swift

我正在尝试删除一个 class 中的所有对象。我在 Realms documentation 中发现了两种可能性。首先可以使用 realm.deleteAll(),它会删除整个数据库,还有 realm.delete(),它会删除一个单独的对象。有没有一种方法可以简单地删除一个 Table/Class 中的所有条目?

假设您要删除 Notofications 的所有对象,

你可以试试这个

let realm = Realm()
    realm.write {
      let allNotifications = realm.objects(Notifications)
      realm.delete(allNotifications)
    }

这是执行此操作的扩展程序:

extension Object {
    static func deleteAll(`in` realm: Realm) throws {
        let allObjects = realm.objects(self)
        try realm.write {
            realm.delete(allObjects)
        }
    }
}

您可以创建 deleteAll 函数

func deleteAll<T: Object>(_ data: [T.Type]) {
        let realm = try! Realm()
        realm.refresh()

        try? realm.write {
            for object in data {
                let allObjects = realm.objects(object)
                realm.delete(allObjects)
            }
        }
    }

将其用作-

deleteAll([OneClass.self, AnotherClass.self])