ios - 删除 Results 类型数组的元素(Realm 类型)
问题描述
考虑一个函数,它将值分配给这样的数组......
fileprivate func getMessages() {
if let myId = recipientGrp?.id,
let array = realm()?.objects(TheMessage.self)
.filter("ownerId = '\(myId)' || receiverId = '\(myId)'")
.sorted(byKeyPath: "id", ascending: true) {
allMessages = array
}
}
这里,allMessages
是添加值的数组。也是allMessages
这样声明的......
var allMessages: Results<TheMessage>?
我想要实现的是我想删除数组的所有元素allMessages
。allMessages.removeAll
不起作用。那么我该如何实现呢?
解决方案
因为allMessages
是 a Results<Message>
,所以您需要从 Realm 中删除这些对象才能真正删除它们。
let realm = // get a realm
try realm.write {
realm.delete(allMessages)
}
// allMessages will automatically become empty at this point.
推荐阅读
- asp.net - 在 ASP.NET webforms 应用程序中使用 WCF 服务
- python - 执行两次播放视频的函数时出错
- python - 在 Django 中使用表单时避免页面刷新
- delphi - 如何复制pdf页面
- drag-and-drop - Draft.js 在放置位置插入图像
- python-3.x - 尝试导入 TensorFlow 2.0 时出现“No module named 'tensorflow.python.platform'”
- sql - 如何获取一周的第一天和最后一天的日期
- python - Python EEL 和 PyInstaller 问题
- node.js - 渲染后显示在 React 中获取 Firebase 数据
- c++ - 如何将新字符串名称与 txt 文件中的现有字符串名称进行比较?