从领域数据库中删除对象时,出现错误原因:“只能从它所属的领域中删除对象。”

时间:2021-07-25 11:34:56

标签: swift uitableview realm codable realm-mobile-platform

我正在尝试使用索引路径删除领域对象,错误为“RLMException”,原因:“只能从它所属的领域中删除一个对象。”

  1. 声明MainModelClass和realm数组

    var arrSavedData = [MainModelClass]()
    var realm : Realm?
    
    override func viewDidLoad() {
      super.viewDidLoad()
      self.getDatafromrealm()
      realm = try! Realm()
     }
    
  2. 为从领域数据库获取数据而编写的函数`

     func getDatafromrealm() {
       realm?.beginWrite()
       let data = realm?.objects(MainModelClass.self)
       let jsonData = try! JSONEncoder().encode(data)
       let decoder = JSONDecoder()
       do{
    
         let result = try decoder.decode([MainModelClass].self, from: jsonData)
         for i in 0..<result.count {
             arrSavedData.append(result[i])
         }
         self.tblSaveData.reloadData()
       }
     catch let error as NSError{
         // error.description
         print(error.description)
       }
        try! realm?.commitWrite()
     }
    

3.tableview方法使用indexpath删除realm对象

 func tableView(_ tableView: UITableView, commit editingStyle: 
       UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
       if editingStyle == .delete {
        realm?.beginWrite()
        realm?.delete(arrSavedData[indexPath.row])
        try! realm?.commitWrite()
        self.tblSaveData.reloadData()
        
    }
}

4.最后一个我的 MainModelClass

class MainModelClass : Object,Codable {

   @objc dynamic var title:String?
   @objc dynamic var link: String?
   @objc dynamic var author: String?
   @objc dynamic var thumbnail: String?
   @objc dynamic var itemDescription: String?
   @objc dynamic var content:String?
   @objc dynamic var pubDate:String?

}

0 个答案:

没有答案