Swift:将UIDatePicker日期保存到CoreData

时间:2018-10-25 08:04:21

标签: ios swift xcode core-data uidatepicker

我在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() } 

因此,当我单击UITextfieldUIDatePicker已打开,我可以选择日期。然后,当我单击保存按钮时,我想将以上所有内容保存在CoreData中。我可以保存数据,期望日期。

enter image description here

2 个答案:

答案 0 :(得分:0)

您甚至可以直接保存日期而不是文本格式。

尝试一下:

@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
}

答案 1 :(得分:0)

嘿,尝试了几次之后,我找到了正确的方法。这是帮助我解决此问题的代码。

  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()}

再次感谢您的帮助。