2016-05-18 3 views
0

Ich bin Anfänger im Programmieren. Mit CoreData versuche ich die Funktion zum Bearbeiten der Daten im Eingabefeld zu erstellen, um die Daten zu bearbeiten, die in den Kerndaten gespeichert werden sollen. Ich habe fatal error:Schwerwiegender Fehler bei der Bearbeitung der Core-Datenobjekte

unerwartet null gefunden, während ein optionaler Wert

@IBAction func update(sender: AnyObject) { 
     let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

     let manageContext = appDelegate.managedObjectContext 

     let fetchRequest = NSFetchRequest(entityName: "Coursework") 

     do { 

      let results = try manageContext.executeFetchRequest(fetchRequest) 

      let attribute = results[0] as! NSManagedObject 

      detailItem?.value = modulename.text 

      attribute.setValue(courseworkname.text, forkey: "courseworkname") 
      attribute.setValue(dueDateLabel.text, forkey: "duedate") 
      attribute.setValue(level.text, forkey: "level") 
      attribute.setValue(mark.text, forkey: "mark") 
      attribute.setValue(modulename.text, forkey: "modulename") 
      attribute.setValue(notes.text, forkey: "notes") 
      attribute.setValue(progressbar.text, forkey: "progressbar") 
      attribute.setValue(reminder.text, forkey: "reminder") 
      attribute.setValue(value.text, forkey: "value") 

      try manageContext.save() 

      }catch let error as NSError { 
     } 
} 

Voll Code auspackt:

@IBOutlet weak var detailDescriptionLabel: UILabel! 
    @IBOutlet weak var dueDateLabel: UITextField! 
    @IBOutlet weak var value: UITextField! 
    @IBOutlet weak var courseworkname: UITextField! 
    @IBOutlet weak var modulename: UITextField! 
    @IBOutlet weak var level: UITextField! 
    @IBOutlet weak var mark: UITextField! 
    @IBOutlet weak var reminder: UITextField! 
    @IBOutlet weak var notes: UITextField! 

    @IBAction func edit(sender: AnyObject) { 

     modulename.userInteractionEnabled = true 
     modulename.enabled = true 
     dueDateLabel.userInteractionEnabled = true 
     value.userInteractionEnabled = true 
     modulename.userInteractionEnabled = true 
     level.userInteractionEnabled = true 
     mark.userInteractionEnabled = true 
     reminder.userInteractionEnabled = true 
     notes.userInteractionEnabled = true 

     //Interaction 

     value.enabled = true 
     dueDateLabel.enabled = true 
     courseworkname.enabled = true 
     modulename.enabled = true 
     level.enabled = true 
     mark.enabled = true 
     reminder.enabled = true 
     notes.enabled = true 

    } 

    @IBAction func update(sender: AnyObject) { 

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

     let manageContext = appDelegate.managedObjectContext 

     let fetchRequest = NSFetchRequest(entityName: "Coursework") 

     do { 

      let results = try manageContext.executeFetchRequest(fetchRequest) 


      let attribute = results[0] as! NSManagedObject 

      detailItem?.value = modulename.text 

      attribute.setValue(courseworkname.text, forKey: "courseworkname") 
     attribute.setValue(dueDateLabel.text, forKey: "duedate") 
      attribute.setValue(level.text, forKey: "level") 
       attribute.setValue(mark.text, forKey: "mark") 
       attribute.setValue(modulename.text, forKey: "modulename") 
      attribute.setValue(notes.text, forKey: "notes") 
      attribute.setValue(progressbar.text, forKey: "progressbar") 
       attribute.setValue(reminder.text, forKey: "reminder") 
     attribute.setValue(value.text, forKey: "value") 



     try manageContext.save() 

     }catch let error as NSError{  

     } 

    } 

    var detailItem: Coursework? 
     var detailItem2: Task? 

      { 
     didSet { 
      // Update the view. 
      self.configureView() 
     } 
    } 

    func configureView() { 
     // Update the user interface for the detail item. 
     if let detail = self.detailItem { 
      if let label = self.detailDescriptionLabel { 
       label.text = detail.courseworkname 
      } 
      if let label = self.dueDateLabel { 
       label.text = detail.duedate 
      } 

      if let label = self.value { 
       label.text = detail.value 
      } 

      if let label = self.courseworkname { 
       label.text = detail.courseworkname 
      } 

      if let label = self.modulename { 
       label.text = detail.modulename 
      } 

      if let label = self.level { 
       label.text = detail.level 
      } 

      if let label = self.mark { 
       label.text = detail.mark 
      } 

      if let label = self.reminder{ 
       label.text = detail.reminder 
      } 

      if let label = self.notes{ 
       label.text = detail.notes 

      } 

     } 
+0

In welcher Zeile passiert dieser Fehler? – FredericP

+0

Können Sie Ihre Variablen und/oder IBOutlets anzeigen, die Sie verwenden, um diese Werte zu erhalten? –

+0

Der vollständige Code wurde hinzugefügt. Passiert in der Zeile attribute.setValue (progressbar.text, forKey: "Fortschrittsbalken") -bad execution –

Antwort

0

Ist es ein neues Attribut? Sie müssen die App deinstallieren und neu installieren, wenn Sie Ihre CoreData-Modelle ändern.

Auch nur gesehen, dass Sie kein IBOutlet für Fortschrittsbalken definiert haben, wenn Sie es verknüpfen, sollte es funktionieren.

+0

Bitte überprüfen Sie diese [URL] (http://stackoverflow.com/help) es wird nützlich sein, um Ihre Content-Qualität zu erhöhen –

Verwandte Themen