问题标签 [forced-unwrapping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2790 浏览

ios - 为什么我得到“未解包的可选类型 UIFont 的值”,但解包给出“解包时意外发现 nil”?

相当简单,有问题的 pickerView 是一个AKPickerView

如果我删除强制解包,我会收到编译器错误。“可选类型 UIFont 的值未展开,您的意思是使用“!”还是“?”?

但是,当我强制打开它时,会出现运行时错误。“致命错误:在展开可选值时意外发现 nil”

0 投票
0 回答
647 浏览

swift - 如何处理“致命错误:在展开可选值时意外发现 nil。”

我收到一个错误

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

我应该怎么办?

我有这样的代码:

并且打印语句因错误“致命错误:在展开可选值时意外发现 nil”而崩溃。那是什么,我该如何解决?

(请注意,崩溃的不仅仅是打印语句。每当我foo!尝试获取 的值时foo,我都会崩溃。)

0 投票
1 回答
345 浏览

ios - 设置选项视图属性的属性时的 EXC_BAD_ACCESS

我试图弄清楚如何使UIProgessView(加载条)具有绿色色调。我环顾四周,没有可用的 Swift 版本。我还试图弄清楚如何在完成后将栏从屏幕上移开。故事板没有做任何事情,一切都是以编程方式完成的。

我正在尝试使用此自定义栏,但它显示“访问不正确”。

这是我试图隐藏栏的地方,但这里也有不好的访问权限。

上下文:

0 投票
1 回答
3415 浏览

ios - 如何避免 Firebase 致命错误:在展开可选值时意外发现 nil?

我正在尝试从 Firebase 读取并将标签设置为我得到的值

这是我的 ViewController 类的顶部的样子:

我有一个 Firebase 参考资料

随机字符串是 Firebase 返回的 uid。

我试图在 viewDidAppear() 方法中获取用户名:

let name 行工作正常。

这一行:

原因:

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

我试过了

它不起作用。

这就是我的 Firebase 的样子:

火力基地

等等。

如何避免此展开错误?谢谢!

注意:我正在运行 XCode 7.3

0 投票
1 回答
83 浏览

ios - 致命错误:在展开物理身体接触的可选值时意外发现 nil

我似乎无法弄清楚它在谈论哪个可选值或为什么我会收到此错误。我检查了我的分数整数,并确保我声明它的值为 0,直到它与敌人接触。在模拟器中,计数器会计算前 4 或 5 个敌人,然后崩溃。

0 投票
1 回答
27 浏览

swift2 - 字段已确认值但仍然出现解包错误?

此代码块在尝试设置 appURL 时失败,即使 if 测试成功并且托管对象联系人的所有字段都设置为非 nil 值,并且对于某些 contact.facebook 有一个值,所以我不明白为什么我会发现 nil试图打开包装?

0 投票
2 回答
353 浏览

xcode - 没有强制展开属性的打印不会在 Swift 中触发运行时错误

我有下面的代码,它工作正常,但我预计该行print(john.residence!.numberOfRooms)会崩溃,因为我的numberOfRooms变量具有nil值,并且在将其值作为参数传递给print(). 谁能解释一下为什么这不会触发运行时错误并nil安全打印?

0 投票
3 回答
936 浏览

swift - Swift:Force Unwrapped 返回 nil 而不会崩溃

以下是我在操场上的代码:

输出:

我很困惑为什么它没有崩溃。返回值NSNumber!显然为零,​​但它被强制解包。这不应该崩溃吗?请解释。

0 投票
5 回答
10134 浏览

swift - Swift 安全地展开可选字符串和整数

当我要为第二个视图触发我的 segue 时,我还会发送一些这样的值:

在第二个 VC 中,我声明了如下变量:

这就是我打开这些值的方式:

这一切都有效,我永远不会收到由未包装的变量或 nil 值引起的任何错误。但是有没有更简单的方法呢?

现在感觉我检查的太多了

0 投票
3 回答
473 浏览

ios - 在保护语句中不使用展开

我了解选项的使用足以知道何时需要使用感叹号解开选项。为什么警卫语句中不需要感叹号?

此代码可以工作和编译,但不使用感叹号:

如果您确实放置了感叹号,则此代码也可以使用:

这不是有点矛盾,还是有人可以清楚地解释为什么不需要感叹号?