我是 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)
""
我被困在这里一段时间试图修补和研究这个问题无济于事。
有人可以帮忙吗???