[英]How to delete object in realm in Swift
我检查了许多其他答案,但仍然有删除领域数据库的问题。 这是我的错误代码:
因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [Rebel.RebelTableViewController delete:]:无法识别的选择器发送到实例0x7fca7b40b5c0
这段代码是从我的表视图中删除的:
if editingStyle == UITableViewCellEditingStyle.delete {
rowHere = indexPath.row
// it crashes the app when I want to delete from database
// delete(self.todos[self.rowHere!])
self.Rebel.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath as IndexPath], with: UITableViewRowAnimation.automatic)
}
首先在viewDidLoad()
获取Object
模型
var DatabaseModel: Results<ObjectClassRealm>!
override func viewDidLoad() {
super.viewDidLoad()
let realm = RealmService.shared.realm
DatabaseModel = realm.objects(ObjectClassRealm.self)
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
guard editingStyle == .delete else { return }
let objectData = DatabaseModel[indexPath.row]
RealmService.shared.delete(objectData)
}
或者你可以点击按钮删除
@IBAction func DeleteData(_ sender: Any) {
let realm = try! Realm()
let deleteData = realm.object(ofType: ObjectClassRealm.self,
forPrimaryKey: PRIMARYKEY)
if deleteData == nil {
print("No data in DB")
} else {
RealmService.shared.delete(deleteData!)
}
}
阅读领域文件,你也会发现很多相同问题的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.