How can I delete object from core data in swift 3

This is how I save data to core, now I want to delete specific object from whole data. How can I do that?
This is how I save data:

func saveProductDetails(product : Product) {
        // set user_id 
        product.user_id = UserDefaults.sharedInstace.getCustomerId()
        //save data locally for the time been
        let entity = NSEntityDescription.entityForName("Product", inManagedObjectContext: self.writeContext)
        let category = NSEntityDescription.entityForName("Category", inManagedObjectContext: self.writeContext)
        let brand = NSEntityDescription.entityForName("Brand", inManagedObjectContext: self.writeContext)

        var entityProduct = NSManagedObject(entity: entity!, insertIntoManagedObjectContext:self.writeContext)
        var entityCategory = NSManagedObject(entity: category!, insertIntoManagedObjectContext:self.writeContext)
        var entityBrand = NSManagedObject(entity: brand!,insertIntoManagedObjectContext: self.writeContext)

        entityProduct = product.settingManagedObject(entityProduct)
        entityProduct.setValue(String(Utill.sharedInstace.getTimeStamp()), forKey: "time_stamp")
        entityProduct.setValue(Constant.Status.STATUS_NOT_VERIFIED, forKey: "status")


        if product.categoryObject != nil{
            product.categoryObject.user_id = UserDefaults.sharedInstace.getCustomerId();
            entityCategory = product.categoryObject.settingManagedObject(entityCategory)
        }

        if product.brandObject != nil{
            product.brandObject.user_id = UserDefaults.sharedInstace.getCustomerId();
          entityBrand = product.brandObject.settingManagedObject(entityBrand)
        }

        entityProduct.setValue(entityCategory, forKey:"category")
        entityProduct.setValue(entityBrand, forKey: "brand")

        writeContext.performBlock {
            do {

                try self.writeContext.save()

                self.managedContext.performBlock({
                    do{
                        try self.managedContext.save()
                    } catch let error as NSError  {
                        print("Could not save \(error), \(error.userInfo)")
                    }

                })
            } catch let error as NSError  {
                print("Could not save \(error), \(error.userInfo)")
                return
            }

        }

    }

This Product object has relationship to two others and I want to delete only specific object, not all. That means delete (which the product.purchase_id == "selected_purchse_id"), in UITableView.
How to do that?

  • Capture still image from AVCaptureSession in Swift
  • How to implement real-time communication between iOS app and server in Swift?
  • UITableViewCell skipped in responder chain
  • Using contextInfo, UnsafeRawPointer in UIImageWriteToSavedPhotosAlbum - Swift 3
  • Get version number of iOS Universal Framework in client
  • 2 ipa files for same app (for better size and performance)
  • Solutions Collect From Internet About “How can I delete object from core data in swift 3”

    Check this code for swift 3 core data operations

    import CoreData
    
    class CoreDataOperations: NSObject {
    
        // MARK: Save data
        func saveData() -> Void {
            let managedObjectContext = getContext()
            let personData = NSEntityDescription.insertNewObject(forEntityName: "Person", into: managedObjectContext) as! Person
            personData.name = "Raj"
            personData.city = "AnyXYZ"
    
            do {
                try managedObjectContext.save()
                print("saved!")
            } catch let error as NSError  {
                print("Could not save \(error), \(error.userInfo)")
            } catch {
    
            }
    
        }
    
        // MARK: Fetching Data
        func fetchData() -> Void {
    
            let moc = getContext()
            let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")
    
            do {
                let fetchedPerson = try moc.fetch(fetchRequest) as! [Person]
    
                print(fetchedPerson.count)
                for object in fetchedPerson {
                    print(object.name!)
                }
    
            } catch {
                fatalError("Failed to fetch employees: \(error)")
            }
    
        }
    
    
    
        // 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: Update Data
        func updateRecords() -> 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 {
                    object.name! = "\(object.name!) Joshi"
                    print(object.name!)
                }
                do{
                    try moc.save()
                    print("saved")
                }catch let error as NSError {
                    print("Could not save \(error), \(error.userInfo)")
                }
    
    
        }
    
        // MARK: Get Context
    
        func getContext () -> NSManagedObjectContext {
            let appDelegate = UIApplication.shared.delegate as! AppDelegate
            return appDelegate.persistentContainer.viewContext
        }
    }
    

    You can get more from https://github.com/rajkumar24u/CoreDataOperations