No se puede actualizar el object de datos básicos.

Puedo insert, search, eliminar el object de datos del núcleo, pero no puedo actualizar el object de datos del núcleo existente. StudentTable es la entidad. id, rollnumber, classnumber, classid, classname son los attributes.

Había creado NSEntityDescription , NSFetchRequest , NSPnetworkingicate , pero aún así, los datos no se actualizan al object de datos de núcleo existente. Todo el object se borra cuando se presiona el button de actualización, que no tengo idea de cómo hacerlo.

Actualizar el código de acción del button

@IBAction func update(_ sender: UIButton) { if(id.text != nil) { let entityDescription = NSEntityDescription.entity(forEntityName: "StudentTable", in: managedObjectContext) let request: NSFetchRequest<StudentTable> = StudentTable.fetchRequest() request.entity = entityDescription let pnetworking = NSPnetworkingicate(format: "(id = %@)", id.text!) request.pnetworkingicate = pnetworking let studenttable = StudentTable(entity: entityDescription!, insertInto: managedObjectContext) do { var results = try managedObjectContext.fetch(request as! NSFetchRequest<NSFetchRequestResult>) if results.count > 0 { let match = results[0] as! NSManagedObject match.setValue(String(describing: id.text), forKey: "id") match.setValue(Int(rollnumber.text!), forKey: "rollnumber") match.setValue(Int(classnumber.text!), forKey: "classnumber") match.setValue(Int(classid.text!), forKey: "classid") match.setValue(String(describing: classname.text!), forKey: "classname") do { try managedObjectContext.save() beacondataobject.append(studenttable) let alert = UIAlertController(title: "Alert", message: "updated data", prefernetworkingStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)) self.present(alert, animated: true, completion: nil) } catch let error as NSError { print("Could not save \(error), \(error.userInfo)") } } else { //noting found let alert = UIAlertController(title: "Alert", message: "No data found", prefernetworkingStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: "Search Again", style: UIAlertActionStyle.default, handler: nil)) self.present(alert, animated: true, completion: nil) } } catch let error { print("error %@", error) } } else{ let alert = UIAlertController(title: "Alert", message: "Enter id to search", prefernetworkingStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: "Try Again", style: UIAlertActionStyle.default, handler: nil)) self.present(alert, animated: true, completion: nil) } } 

Cualquier sugerencia se agradecerá, gracias.

usando xcode 8.2, swift 3