"致命错误"崩溃在"如果让"

时间:2016-10-04 12:43:30

标签: ios swift xcode crash fatal-error

我遇到了一个没有其他信息的崩溃,这是一个致命的错误。我可以在' Organizer'中看到它。在Xcode中,它指向以下行:

enter image description here

我无法在我工作的设备或模拟器上重现它。当有人使用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
    }

2 个答案:

答案 0 :(得分:0)

考虑阅读herehere,以便更好地了解崩溃报告的来源。看起来好像你试图在你的线上投射一个数组内部来创建崩溃的对象。但通常情况下崩溃的根源在此之前......

尝试查看第3行的代码:

let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! LTableViewCell

看看编译器是否会因为发出警告或者你做了什么而让你对LTableViewCell执行此操作。通常它可能会构建,但它可能导致崩溃,因为它不是匹配的数据类型。

答案 1 :(得分:0)

我似乎已经解决了这个问题。当用户的手机将其日期和时间设置为以12小时格式显示时,就会发生这种情况。我看了this answer并添加了以下内容:

    dateFormatter.locale = Locale(localeIdentifier: "en_GB")

崩溃不再发生了。我希望崩溃日志不是那么无用。这本来可以节省我很多时间。