簡體   English   中英

如何在Swift中刪除領域中的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM