Swift 3 Core Data Delete Object

后端 未结 8 2133
日久生厌
日久生厌 2020-11-29 02:41

Unfortunately the new Core Data semantics make me crazy. My previous question had a clean code that didn\'t work because of incorrect auto generation of header files. Now I

相关标签:
8条回答
  • 2020-11-29 03:30

    Delete core data objects swift 3

    // MARK: Delete Data Records
    
    func deleteRecords() -> Void {
        let moc = getContext()
        let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")
    
         let result = try? moc.fetch(fetchRequest)
            let resultData = result as! [Person]
    
            for object in resultData {
                moc.delete(object)
            }
    
            do {
                try moc.save()
                print("saved!")
            } catch let error as NSError  {
                print("Could not save \(error), \(error.userInfo)")
            } catch {
    
            }
    
    }
    
    // MARK: Get Context
    
    func getContext () -> NSManagedObjectContext {
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        return appDelegate.persistentContainer.viewContext
    } 
    
    0 讨论(0)
  • 2020-11-29 03:30

    Swift 4.1, 4.2 and 5.0

         let appDelegate = UIApplication.shared.delegate as! AppDelegate
         let context = appDelegate.persistentContainer.viewContext
         let requestDel = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
         requestDel.returnsObjectsAsFaults = false
      // If you want to delete data on basis of some condition then you can use NSPredicate
      //  let predicateDel = NSPredicate(format: "age > %d", argumentArray: [10])
      // requestDel.predicate = predicateDel
    
    
         do {
              let arrUsrObj = try context.fetch(requestDel)
              for usrObj in arrUsrObj as! [NSManagedObject] { // Fetching Object
                  context.delete(usrObj) // Deleting Object
             }
         } catch {
              print("Failed")
         }
    
        // Saving the Delete operation
         do {
             try context.save()
         } catch {
             print("Failed saving")
         }
    
    0 讨论(0)
提交回复
热议问题