swift - 如何删除除一种类型之外的所有对象?
问题描述
我知道我可以使用以下代码轻松完成:
realm.delete(realm.objects(Duck.self))
realm.delete(realm.objects(Frog.self))
//...
realm.delete(realm.objects(Cat.self))
但是删除除一种类型对象之外的所有对象的最佳方法是什么?
请注意,我有很多类型,每次添加新类型时,我都应该修改我的deleteAll
方法。
解决方案
According to Dávid's answer:
func deleteAll(except types: Object.Type...) {
guard let realm = realm else { return }
try? realm.write {
realm.configuration.objectTypes?.filter{ type in types.contains{ $0 == type } == false}.forEach{ objectType in
realm.delete(realm.objects(objectType.self))
}
}
}
Usage:
deleteAll(except: Dog.self, Chicken.self)
推荐阅读
- tensorflow - 给定一批 n 图像,如何在张量流中将每个图像乘以不同的标量?
- websocket - 无法代理使用 create-react-app 的 websocket
- ios - 如何在反应本机应用程序中永久关闭错误显示
- javascript - Ajax调用后如何属性更新引导自动完成源
- php - PHPUnit 总是把我带到登录页面,。不管我做什么
- javascript - 如何在应用程序中为 Angular 表单制作带有表单控制输入的通用组件
- openframeworks - 使用 Openframeworks 绘制阻尼余弦函数
- haskell - 在 Haskell Miso 中读取单选按钮值
- firefox - 在没有用户确认的情况下写入文件
- azure - 在 Azure、linux 容器上运行 mojolicious Web 应用程序