致命错误:意外发现零而展开的可选值(LLDB)
问题描述:
我有展开问题,不明白这个错误:致命错误:意外发现零而展开的可选值(LLDB)
fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)`.
一切,我已经找到帮我不能向前。在第一视图控制器我有此代码
var everypicture = [EveryPicture]()
和我呈现第一视图控制器的代表到SecondViewController:在Segue公司
var delegate: FirstViewController?`
。然后我得到代表的每张照片,并得到计数:
let piccount = delegate?.everypicture.count
print("\(piccount!)")`
但它出现错误。是什么让我错了,错误是什么意思?感谢您的帮助
答
所以据我所知,错误消息说,当它试图解开一些价值时它没有对象。解包操作 - 从可选值中获取真实值。在你贴我只能看到一次这样的操作代码
print("\(piccount!)")
所以picccount变量是零和使用操作符“!”你试图解开它说:“不是零的人,确定”,但它是。
为了找到其中i问题设定停止执行OB此线
let pic count = delegate?.everypicture.count
,并检查是否:
1)代表为nil
2)阵列是nil(它不应该但它仍然不是很难检查)
希望它有帮助。
答
它看起来像你永远不会分配一个值delegate
。你只是将其类型定义为FirstViewController?
。您需要分配该类的一个实例。 piccount
成为可选项,因为delegate
本身是可选项。部队解包piccount
不正确(因为delegate
为零);改为使用if let
。
他的数组不能以它被声明的方式'nil'。它是空的或有价值的。最有可能的代表是零,他只是在没有阅读文档或做一个适当的教程的情况下尝试。 – Eendje
我的委托人是零,但我在FirstViewController'override func prepareForSegue(segue:UIStoryboardSegue,sender:AnyObject?)的segue中呈现代理if if segue.identifier ==“EveryPhotoSegue”{var 0c = segue.destinationViewController as ! EverydayController vc.delegate = self}}'EverydayController是我的SecondViewController。 –
现在它工作正常吗? – Volodymyr