swift2 CoreData/Swift 2在保存NSDate类型时出现问题

yshpjwxd  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(267)

我在xcode 7中保存日期类型时遇到了问题。错误消息说你不能为NSDate指定一个字符串?,那么有没有其他方法来保存NSDate类型,而不是我现在正在做的呢?另外,对于日期字段,我用实用的方法为它创建了一个日期选择器,以便在其中输入文本,我不知道这是否会有区别。

  1. @IBOutlet weak var dateField: UITextField!
  2. @IBAction func dateField(sender: UITextField) {
  3. // This creates an Input View
  4. let inputView = UIView(frame: CGRectMake(0, 0, self.view.frame.width, 240))
  5. // This creates an Picker View for the date
  6. let datePickerView : UIDatePicker = UIDatePicker(frame: CGRectMake(0, 40, 0, 0))
  7. datePickerView.datePickerMode = UIDatePickerMode.Date
  8. inputView.addSubview(datePickerView)
  9. // Makes a toolbar with a done button at the top of of the date picker view for it to dismiss the moment its clicked
  10. let doneButton = UIButton(frame: CGRectMake((self.view.frame.size.width/2) - (100/2), 0, 100, 50))
  11. doneButton.setTitle("Done", forState: UIControlState.Normal)
  12. doneButton.setTitle("Done", forState: UIControlState.Highlighted)
  13. doneButton.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
  14. doneButton.setTitleColor(UIColor.grayColor(), forState: UIControlState.Highlighted)
  15. // Adds the done button to the datepicker
  16. inputView.addSubview(doneButton)
  17. doneButton.addTarget(self, action: "doneButton:", forControlEvents: UIControlEvents.TouchUpInside)
  18. // Uses the date picker as a date picker using the format made in the function 'datePickerChanged'
  19. sender.inputView = inputView
  20. datePickerView.addTarget(self, action: Selector("datePickerChanged:"), forControlEvents: UIControlEvents.ValueChanged)
  21. // Immediately sets a date on start
  22. datePickerChanged(datePickerView)
  23. }
  24. func doneButton(sender : UIButton) {
  25. dateField.resignFirstResponder()
  26. }
  27. func datePickerChanged(sender : UIDatePicker) {
  28. // Creates a date sytle format for the date picker
  29. let dateFormatter = NSDateFormatter()
  30. dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
  31. dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle
  32. dateField.text = dateFormatter.stringFromDate(sender.date)
  33. }
rnmwe5a2

rnmwe5a21#

试试这个- * 我不会问为什么要使用DatePicker将日期放入textField,然后再将textField中的文本转换为日期 *。

  1. let dateFormatter = NSDateFormatter()
  2. dateFormatter.dateFormat = /*Use the same format as is output by your datepicker*/
  3. let date = dateFormatter.dateFromString(/*your_date_string*/)

相关问题