gpt4 book ai didi

swift - 只能从它所属的 Realm 中删除一个对象

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:22 26 4
gpt4 key购买 nike

每次我尝试从我的 TableView 上的 Realm 中删除一个对象时,我都会收到此错误“只能从它所属的 Realm 中删除一个对象”。相关代码如下:

let realm = try! Realm()
var checklists = [ChecklistDataModel]()

override func viewWillAppear(_ animated: Bool) {


checklists = []
let getChecklists = realm.objects(ChecklistDataModel.self)

for item in getChecklists{

let newChecklist = ChecklistDataModel()
newChecklist.name = item.name
newChecklist.note = item.note

checklists.append(newChecklist)
}

tableView.reloadData()

}

override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return checklists.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ChecklistCell", for: indexPath) as! ListsTableViewCell

cell.name.text = checklists[indexPath.row].name
return cell
}

override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {

// Delete the row from the data source
try! realm.write {
realm.delete(checklists[indexPath.row])
}

//delete locally
checklists.remove(at: indexPath.row)

self.tableView.deleteRows(at: [indexPath], with: .fade)
}
}

我知 Prop 体是这部分:

     // Delete the row from the data source
try! realm.write {
realm.delete(checklists[indexPath.row])
}

知道发生了什么事吗?提前致谢!

最佳答案

您正在尝试删除存储在集合中的 Realm 对象的副本,而不是存储在 Realm 中的实际 Realm 对象。

try! realm.write {
realm.delete(Realm.objects(ChecklistDataModel.self).filter("name=%@",checklists[indexPath.row].name))
}

没有 CheklistDataModel 的定义,我不确定我的 NSPredicate 是否正确,但你应该可以从这里弄明白。

关于swift - 只能从它所属的 Realm 中删除一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43860885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com