2015-11-05 2 views
0

У меня есть следующий код, который работает, когда я нажимаю на кнопку Сохранить в моем приложенииНевозможно сохранить в Core Data

let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    let context: NSManagedObjectContext = appDel.managedObjectContext! 
    print("checkpoint 1") 
    let newJob = NSEntityDescription.insertNewObjectForEntityForName("Job", inManagedObjectContext: context) 
    print("checkpoint 2") 
    newJob.setValue(jobTitleField.text, forKey: "title") 
    newJob.setValue(phoneNumberField.text, forKey: "phoneNumber") 
    print("checkpoint 3") 
    newJob.setValue(Double(hourlyRateField.text!), forKey: "hourlyRate") 
    newJob.setValue(Double(doublePayField.text!), forKey: "doublePayRate") 

    print("checkpoint 4") 
    do { 
     try context.save() 
    } catch { 
     print("There was error saving data.") 
    } 
    print("checkpoint 5") 

    self.dismissViewControllerAnimated(true, completion: {}) 

Однако, когда я запустить приложение, и получить доступ к базе данных MySQL через SQLiteManager, то данные не отображаются в базе данных.

Может ли кто-нибудь увидеть, что я делаю неправильно или что-то, что я пропустил?

ответ

0

Ваш код выглядит отлично, за исключением некоторых изменений синтаксиса для последней версии Swift. Следующий метод сохранения работает отлично для Swift 2.1, если вы хотите попробовать его

PS, замените self.dismiss с presentingViewController.dismiss или просто отпустите, поскольку self.dismiss попытается удалить дочерний vc текущего vc, но я могу видеть вы пытаетесь удалить себя.

private func save(text:String, entityName:String, key:String) { 
    if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate { 
     let managedContext = appDelegate.managedObjectContext 
     if let newjob = NSEntityDescription.entityForName(entityName, inManagedObjectContext: managedContext) { 
      let job = NSManagedObject(entity: newjob, insertIntoManagedObjectContext: managedContext) 
      job.setValue(text, forKey: key) 

      //save 
      do { 
       try managedContext.save() 
       //append it to your model in the project (most common to do) 
      } catch (let error) { 
       print("Not saved. \(error)") 
      } 
     } 
    } 
} 
Смежные вопросы