我遇到了一个没有其他信息的崩溃,这是一个致命的错误。我可以在' Organizer'中看到它。在Xcode中,它指向以下行:
我无法在我工作的设备或模拟器上重现它。当有人使用TestFlight的测试版时会发生这种情况。
#0 (null) in specialized _fatalErrorMessage(StaticString, StaticString, StaticString, UInt, flags : UInt32) -> Never ()
#1 (null) in specialized _fatalErrorMessage(StaticString, StaticString, StaticString, UInt, flags : UInt32) -> Never ()
#2 (null) in ...TableViewController.tableView(UITableView, cellForRowAt : IndexPath) -> UITableViewCell at ...TableViewController.swift:103
更多代码:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier = "LCell"
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! LTableViewCell
let l = ls[(indexPath as NSIndexPath).row]
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = NSLocalizedString("dd/MM/yyyy", comment: "")
if let date = l.date{
let dateString = dateFormatter.string(from: date)
cell.dateLabel.text = dateString
}
答案 0 :(得分:0)
考虑阅读here或here,以便更好地了解崩溃报告的来源。看起来好像你试图在你的线上投射一个数组内部来创建崩溃的对象。但通常情况下崩溃的根源在此之前......
尝试查看第3行的代码:
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! LTableViewCell
看看编译器是否会因为发出警告或者你做了什么而让你对LTableViewCell
执行此操作。通常它可能会构建,但它可能导致崩溃,因为它不是匹配的数据类型。
答案 1 :(得分:0)
我似乎已经解决了这个问题。当用户的手机将其日期和时间设置为以12小时格式显示时,就会发生这种情况。我看了this answer并添加了以下内容:
dateFormatter.locale = Locale(localeIdentifier: "en_GB")
崩溃不再发生了。我希望崩溃日志不是那么无用。这本来可以节省我很多时间。