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

Posted

技术标签:

【中文标题】致命错误:在展开可选值时意外发现 nil (EXC_BAD_INSTRUCTION)【英文标题】:fatal error: unexpectedly found nil while unwrapping an Optional value (EXC_BAD_INSTRUCTION) 【发布时间】:2015-04-10 12:17:05 【问题描述】:

我发现了许多类似的问题,但没有一个有帮助。当我展示一个名为 TestVCViewController 的视图控制器并使用此处声明的 IBOutlet UILabel 执行某些操作时,我会收到此错误。

我检查了IBOutlet 连接,它已连接。

如果我只是简单地展示 VC(即 IBOutlet 已声明并连接但未使用),则没有错误,但是,视图尚未加载,因为它显示为黑色,而实际上它具有白色背景.

我检查了这个答案 https://***.com/a/27219058/2500457 并为所有尺寸类别提供了 UILabel 自动布局约束,但它没有帮助。

FirstVC.swift

var nextVC:TestVCViewController
required init(coder aDecoder: NSCoder) 
    nextVC = TestVCViewController()
    super.init(coder: aDecoder)

按钮操作:

self.nextVC =  TestVCViewController()
self.presentViewController(self.nextVC, animated: true, completion: nil)

TestVCViewController.swift:

class TestVCViewController: UIViewController 

@IBOutlet  var screwManLABEL: UILabel!
override func viewDidLoad() 
    super.viewDidLoad()
    screwManLABEL.text = "heyyyy"


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()


我在screwManLABEL.text = "heyyyy" 收到异常,调试器显示

致命错误:意外发现 nil....

【问题讨论】:

你在使用storyboard/xib吗?如果是这样,您必须从 xib/storyboard 文件中初始化 TestVCViewController 还是使用 segue 进行演示? 是的,我正在使用情节提要。我没有使用segues。我在上面写的按钮操作中使用了presentviewcontroller方法。 【参考方案1】:

改变你初始化TestVCViewController的方式

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("your_VC_ID") as! TestVCViewController
self.presentViewController(vc, animated: true, completion: nil)

【讨论】:

以上是关于致命错误:在展开可选值时意外发现 nil (EXC_BAD_INSTRUCTION)的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:在展开可选值时意外发现 nil - 为啥?

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

@IBInspectable 致命错误:在展开可选值时意外发现 nil

为啥我收到错误:致命错误:在展开可选值时意外发现 nil?

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

swift 2 致命错误:在展开可选值时意外发现 nil - 类别名称