致命错误:改变segue

Posted

技术标签:

【中文标题】致命错误:改变segue【英文标题】:Fatal error: to change segue 【发布时间】:2015-06-28 00:09:29 【问题描述】:

我的项目是一个带有导航栏和 segue 的简单应用程序,我收到此错误:

fatal error: unexpectedly found nil while unwrapping an Optional value (lldb) 

在行中:

            cell.valueLabel.text = dictionary.word

线程 1:EXC_BREAKPOINT(代码=1,子代码=0x100239474

应用程序在 iphone 中运行第一个 tableview,但是当我触摸 table view 的任何一行以转到下一个 table view 时,应用程序崩溃。 如果我删除这个开关,segue 就可以工作,我可以看到第二个视图控制器

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! DefinitionTableViewCell

    switch indexPath.row 
    case 0:
        cell.fieldLabel.text = "wordLabel"
        cell.valueLabel.text = dictionary.word
    case 1:
        cell.fieldLabel.text = "meaningLabel"
        cell.valueLabel.text = dictionary.meaning
    default:
        cell.fieldLabel.text = ""
        cell.valueLabel.text = ""
    

    return cell

任何帮助都非常受欢迎:)

【问题讨论】:

【参考方案1】:

我想你已经在func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) 中创建了cell 喜欢

var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell

请检查 dictionary 的类型,您的 DataModel 的实例(我猜)是否为 Optional

【讨论】:

只要更新问题,如果我删除开关的代码,segue 就可以工作了...... 1.您可以只将String 分配给cell.valueLabel.text,而不是加入dictionary,以推断错误是否发生在dictionary 2.如果它构建&运行没有错误,这意味着你需要检查你的 DataModel 类,Dictionary(我猜是名字)。

以上是关于致命错误:改变segue的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:单击特定单元格进行 segue 时索引超出范围

Swift 致命错误:在 segue 上展开 Optional 值时意外发现 nil

带有可选选项的致命错误没有意义

致命错误:在展开可选值 (lldb) 时意外发现 nil

致命错误:将可选值 TableViewCell 展开到 UIViewController 时发现 Nil

奇怪的“致命错误:在展开可选值时意外发现 nil”