2017-04-20 23 views
0

ここで私はデータの保存を完了し、それをテーブルビューでも表示しましたが、問題は編集できず、データをコアデータデータベースに更新することができません。swift 3.0を使用してデータを編集してコアデータに保存できませんでしたか?

@IBAction func updateButtonClicked(_ sender: Any) { 
      var firstname = "" 
      var lastname = "" 
      var emailid = "" 
      var Password = "" 
      var mobileNumber = "" 

      firstname = firstnameTextfield.text! 
      lastname = lastanameTextField.text! 
      emailid = emailidTextField.text! 
      Password = passwordTextField.text! 
      mobileNumber = mobilenumberTextField.text! 

      let appDelegate = UIApplication.shared.delegate as! AppDelegate 
      let managedContext = appDelegate.persistentContainer.viewContext 
      let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName:"Account") 
      do { 
       let list = try context.fetch(fetchRequest) as? [NSManagedObject] 
       if list?.count != 0 
       { 
        let newManagedObject = NSEntityDescription.insertNewObject(forEntityName: "Account", into: context) 
        newManagedObject.setValue(firstnameTextfield.text, forKey: "firstName") 
        newManagedObject.setValue(lastanameTextField.text, forKey: "lastname") 
        newManagedObject.setValue(emailidTextField.text, forKey: "emailID") 
        newManagedObject.setValue(passwordTextField.text, forKey: "password") 
        newManagedObject.setValue(mobilenumberTextField.text, forKey: "mobileNumber") 
        try managedContext.save() 
       } 
       } 
      catch let error as NSError { 
       print("Fetch failed: \(error.localizedDescription)") 
      } 
+0

宣言されていない変数 'context'を使用します。これをチェックしてください。 – AlexSmet

+0

いいえ私はグローバルに宣言しました –

答えて

0

コードでは、データの取得と新しいデータの挿入が混在しています。それらの答えを確認してください:

https://stackoverflow.com/a/28258374/4689446

https://stackoverflow.com/a/38423458/4689446

一般的なアイデアコアデータに既存のオブジェクトを更新する方法のために:

  • は述語
  • でデータをフェッチあなたは、マッチングの配列を取り戻しますオブジェクト
  • これらのオブジェクトの値を設定し、それらを保存して戻す
関連する問題