Swift: сохранить дату UIDatePicker в CoreData - PullRequest
0 голосов
/ 25 октября 2018

У меня есть атрибут в CoreData, который принимает значение даты.Я просто хочу получить дату UIDatePicker и сохранить ее в этом формате dd/mm/yyyy.Но не знаю как.Спасибо

let newUser = NSEntityDescription.insertNewObject(forEntityName: "Person", into: Constant.context!)

    newUser.setValue(self.txtName!.text, forKey: Constant.CDName)
    newUser.setValue(self.txtEmail!.text, forKey: Constant.CDEmail)
    newUser.setValue(self.txtPassword!.text, forKey: Constant.CDPassword)
    newUser.setValue(self.txtDob.text, forKey: Constant.CDDob) as! String

    do {
        try Constant.context?.save() } 

Итак, когда я нажимаю UITextfield, открывается UIDatePicker, и я могу выбрать дату.Затем, когда я нажимаю на кнопку сохранения, я хочу сохранить все вышеизложенное в моем CoreDataЯ могу сохранить данные в ожидании даты.

enter image description here

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Эй, я нашел правильный путь после попытки пару раз.Это код, который помогает мне в этом.

  let datePicker = UIDatePicker()
  let formatter = DateFormatter()
     formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
     let myString = formatter.string(from: datePicker.date)
     let yourDate = formatter.date(from: myString)

  let newUser = NSEntityDescription.insertNewObject(forEntityName: "Person", into: Constant.context!)

     newUser.setValue(self.txtName!.text, forKey: Constant.CDName)
     newUser.setValue(self.txtEmail!.text, forKey: Constant.CDEmail)
     newUser.setValue(self.txtPassword!.text, forKey: Constant.CDPassword)
     newUser.setValue(yourDate, forKey: Constant.CDDob)

        do {
            try Constant.context?.save()}

Еще раз спасибо за помощь.

0 голосов
/ 25 октября 2018

Вы можете даже сохранить дату напрямую вместо текстового формата.

Попробуйте это:

@IBAction func saveButtonTapped(_ sender: UIButton) {

    let dateFormatter = DateFormatter()

    ....

    let dateString = dateFormatter.string(from: datePicker.date)
    self.txtDob.text = dateString
    self.txtDob.resignFirstResponder()

    //Save to your Core Data
}
...