【问题标题】:signal SIGABRT on instantiateViewControllerinstanceViewController 上的信号 SIGABRT
【发布时间】:2018-06-05 06:41:19
【问题描述】:

我已经创建了带有情节提要的第二个视图控制器。我已经指定了 StoryBoard ID。我为这个控制器创建了一个类,并在故事板中指定了这个类:

import UIKit
import Foundation

class SecondViewController: UIViewController {
    // It is really empty
}

然后我试图激活这个控制器做一个相当标准的操作:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

let secondViewController = storyBoard.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController

self.present(secondViewController, animated:true, completion:nil)

但是,当执行到达并调用storyBoard.instantiateViewController - 我得到Thread 1: signal SIGABRT 没有任何描述(点击它什么都没有):

我已经看过这个 QA:Swift error : signal SIGABRT how to solve it - clean & build 并不能解决问题。

我想我在第二个视图控制器的配置中遗漏了一些东西。但我找不到究竟是什么。有什么建议吗?

【问题讨论】:

  • 继续单击调试器中的“播放”按钮,直到您在调试器控制台中获得完整的错误和堆栈跟踪(可能应该单击 3 或 4 次)。
  • @maddy 如果我点击“播放”按钮,它会询问我Stop "<Name of my app>"?
  • 在调试器中点击“继续”会给我EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 没有堆栈跟踪
  • 您的强制施法很可能失败了。检查情节提要中的课程。
  • 你勾选了use storyboard id的复选框?

标签: swift xcode uiviewcontroller sigabrt


【解决方案1】:

验证您的故事板文件名并在该行中使用它:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

【讨论】:

  • 谢谢兄弟!你拯救了我的一天。那是个问题。我使用了不正确的 StoryBoard 名称。它应该与我要切换到的故事板文件的名称相同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
相关资源
最近更新 更多