【问题标题】:Swift - Fatal Error on Performing SegueSwift - 执行 Segue 的致命错误
【发布时间】:2015-10-21 17:17:20
【问题描述】:

当我在按下标准 UIButton 后运行以下代码行时,我的 iOS 应用程序崩溃了:

self.performSegueWithIdentifier("loginAttempt", sender: self)

segue 标识符名称是正确的,因为我将边栏中的名称复制并粘贴到代码中。删除代码后,应用在按下按钮时停止崩溃。

我得到的错误是:

Thread 1: EXC_BREAKPOINT (code=1, subcode=0x1002544fc)

在输出框中:

fatal error: unexpectedly found nil while unwrapping an Optional value

【问题讨论】:

  • 您是否已将故事板中的 segue loginAttempt 命名为?
  • 如果您指的是在属性检查器中找到的“标识符”选项,那么是的。这就是我将名称复制到代码中以确保没有拼写错误的地方。
  • 你是把segue从视图控制器拖到下一个视图控制器,还是从按钮拖到下一个视图控制器?
  • 我将 segue 从视图控制器拖到下一个。具体来说,我将它从带有 View Controller 工具提示的黄色小框拖到下一个。
  • 尝试从按钮拖动到下一个视图控制器以创建一个segue(无代码)。如果这不起作用,请向我们展示 segue 周围的代码

标签: ios swift crash segue identifier


【解决方案1】:

错误在其他地方,但为了清楚起见。

1) 在接续线上设置断点,注意控制到达接续行。

或者

2) 以下将您的 segue 进行测试:

override func viewDidAppear(animated: Bool) {
   self.performSegueWithIdentifier("loginAttempt", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
   if (segue.identifier == "loginAttempt") {
        print("Hi segue is working")
   }
}

如果它打印线,那么 segue 正在工作。

【讨论】:

  • 这一切都应该放在 ViewController.swift 中吗?
  • 好的,所以在输出框中它正在打印消息“Hi segue is working”......但仍然崩溃。在代码的初始行上添加了一个断点,它正在到达该点并停在那里。
  • 它的意思是segue正在调用。可选展开时,错误在其他地方。上面的代码我给你测试。 segue 正在工作。所以,它明显的错误在别的地方。
  • 如果您在此处粘贴代码,我们可以帮助您查找可选错误。
  • 您想要 ViewController.swift 中的所有内容?没什么大不了的,但可以做到:)
【解决方案2】:

我遇到了类似的问题,经过数小时的挫折后,我发现了自己的问题。最终,问题在于我在 ViewController 类中添加了新代码。我一直在搜索的页面也从未指定过指定的类,并且默认为 ViewController 类。当它尝试运行该类的代码时,新的视图控制器缺少在代码中找到的元素并导致崩溃。

我只是创建了一个新类来提供给我正在搜索的页面,一切都再次正常!

我不确定这是你的问题,但我希望至少能帮助解决问题所在!

【讨论】:

    猜你喜欢
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多