我想将用户从UIDatePicker中选取的时间保存到String类型的核心数据实体中(我只选择了String以适合下面的代码。在这里打开建议)。目的是稍后使用this code在选定的时间发送用户内部通知。
当用户选择 20:00 并点击保存按钮时,我希望显示20:00 。但是,它会显示:
<NSDateFormatter: 0x60000024f8a0>
在表的行中。每次添加时间,输出都如上所示,而不是显示的实际时间。我的目的只是存储时间,以便我可以向他们发送this等通知。
以下是按钮的代码:
@IBAction func addBobBtnTapped(_ sender: AnyObject)
{
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext //creates an object of a property in AppDelegate.swift so we can access it
let bob = Bob(context: context)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "hh:mm"
dateFormatter.string(from: timeSetbyUser.date)
bob.timeToPing = dateFormatter.description
//timeSetbyUser.date as NSDate?
//Save the data to core data
(UIApplication.shared.delegate as! AppDelegate).saveContext()
navigationController!.popViewController(animated: true)
}
非常感谢!
答案 0 :(得分:2)
您需要替换以下两行:
dateFormatter.string(from: timeSetbyUser.date)
bob.timeToPing = dateFormatter.description
使用:
bob.timeToPing = dateFormatter.string(from: timeSetbyUser.date)
不要忽略警告。您应该在线上看到警告:
dateFormatter.string(from: timeSetbyUser.date)
关于未使用的返回值。这是一个重要的线索。
您还应该更改日期格式。使用HH:mm
24小时或使用hh:mm a
12小时,上午/下午。