我是swift的新手,我正在尝试传递文本标签值,使用DateFormatter将日期转换为字符串。这是我的逻辑线程:
我首先在Playground测试了这个方法:
let currentDateTime1 = Date() // "Feb 23, 2018 at 9:09 AM"
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = .none
dateFormatter.dateStyle = .short
dateFormatter.string(from: Date()) // "2/23/18"
dateFormatter.string(from: currentDateTime1) // "2/23/18"
成功!!这是我的标签所需的格式
然而,在调试我的代码之后,我发现这个逻辑从这个代码块返回nil:
//Event.swift
class Event {
var title: String = "Hello"
var time = Date()
init(title: String, time: Date) {
self.title = title
self.time = time
}
var events = [Event]()
// TableViewController.swift
class TableViewController: UITableViewController {
let dateFormatter = DateFormatter()
var events = [Event]()
func setDateFormatter() {
dateFormatter.timeStyle = .none
dateFormatter.dateStyle = .short
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "EventCell")!
let event = events[indexPath.row]
cell.textLabel?.text = event.title
cell.detailTextLabel?.text = dateFormatter.string(from: event.time)
return cell
}
在调试窗口中,我运行:
(lldb) po event.title
"Swift 1.0"
(lldb) po event.time
▿ 2018-02-23 14:55:08 +0000
- timeIntervalSinceReferenceDate : 541090508.07748997
(lldb) po dateFormatter.string(from: event.time)
""
我已经被困在这里一段时间,试图修补和研究这个问题无济于事。
有人可以帮忙吗???