EXC_BREAKPOINT UNKNOWN 在第"0"行崩溃

10

我在Crashlytics报告中发现了一个奇怪的崩溃,不确定发生了什么。我甚至不知道行号“0”是什么意思。有任何想法吗?

在此输入图像描述

didSelect方法的代码:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    switch indexPath.section {

    case 1:
        let vc = WTShowDetailVC()
        vc.show = bottomFeaturedShows[indexPath.row].show
        navigationController?.pushViewController(vc, animated: true)

    case 2:
        let vc = WTShowDetailVC()
        vc.show = lastWatchedShows[indexPath.row]
        navigationController?.pushViewController(vc, animated: true)

    case 3:
        let vc = WTTapperProfileUserVC()
        vc.tapper = popularTappers[indexPath.row]
        navigationController?.pushViewController(vc, animated: true)

    default:
        println("Something went wrong")
    }
}

尝试使用navigationController!.pushViewController而不是navigationController?.pushViewController。无论如何,这与第0行无关。 - ares777
2
就像 @user3344236 所说的,它不关乎第0行,还要确保你没有访问数组对象的越界。 - Schemetrical
3
我相信我的版本是正确的。 "navigationController?"比"navigationController!"更安全。我认为问题与navigationController无关。 - VojtaStavik
@Schemetrical 当然可以。如果问题是那里的话,我会得到“越界”问题。但我得到的是“EXC_BREAKPOINT UNKNOWN”。 - VojtaStavik
确认一下 bottomFeaturedShows[indexPath.row] 或 lastWatchedShows[indexPath.row] 或 popularTappers[indexPath.row] 是否为 nil [null]。我认为你的问题在于 bottomFeaturedShows[indexPath.row].show 这一行。 - ares777
显示剩余4条评论
1个回答

0

通常情况下,当您尝试解包一个可选项并且其值为nil时,就会发生这种情况。尝试在navigationController上放置一个nil检查。

if let navigationcontroller: UINavigationController = navigationController { 
    navigationcontroller.pushViewController(vc, animated: true) 
}

谢谢您的回复,但这不可能是问题所在。如果navigationController为nil,调用navigationController?.pushViewController是正确的,并不会导致崩溃。 - VojtaStavik
我曾经遇到过类似的情况。在我的情况下,这种情况是可以重现的。崩溃并不在Crashlytics报告中给出的同一行上。我建议您检查您正在使用的函数中是否有任何可选项,例如bottomFeaturedShows、lastWatchedShows等。 - KrishnaCA
这并不一定是关于可选项本身的问题。在我的情况下,崩溃是由于将一个Swift非可选对象设置为Objective-C中的一个nil对象导致的。 - gokeji

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接