首页 > 解决方案 > 删除 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>?

我想要实现的是我想删除数组的所有元素allMessagesallMessages.removeAll不起作用。那么我该如何实现呢?

标签: iosarraysswiftrealm

解决方案


因为allMessages是 a Results<Message>,所以您需要从 Realm 中删除这些对象才能真正删除它们。

let realm = // get a realm
try realm.write {
    realm.delete(allMessages)
}
// allMessages will automatically become empty at this point. 

推荐阅读