问题标签 [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 投票
1 回答
233 浏览

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

我正在为 Swift 社区编写一个小型社交网络应用程序。

我得到了错误:fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)当我尝试用 self.presentViewController(FeedViewController(), animated: true, completion: nil). 这行代码仅在允许用户访问第二页时执行。

这是完整的代码:

0 投票
1 回答
1358 浏览

scala - Scala:访问可选对象中的可选值

有没有一种访问选项对象内选项值的好方法?嵌套的匹配案例会导致丑陋的树结构。

因此,如果我有例如:

我知道访问该值的唯一方法是:

这很丑陋,因为这个结构只是为了访问一个小的 Option 值。

我想做的是:

或者像你可以用Swift做的那样:

Scala中有什么东西可以让我很好地处理这些事情吗?

谢谢!

0 投票
1 回答
186 浏览

ios - Swift,使用连接器连接(隐式展开)可选字符串

我已经尝试加入一些[String!]. 所以我这样

但是,它似乎仍然很复杂。我该如何优化这个?

0 投票
1 回答
105 浏览

swift - 更改为使用可选链接替换 ​​swift 中的强制展开时有什么区别?

调用对象实例的函数时,对象可能不存在(可选类型),似乎可以在对象名后面加一个问号,而不是在对象名后面加一个感叹号,不会崩溃。

是不是在使用强制展开的地方,你总是可以改为使用可选链接,结果是一样的?如果是,有什么区别?

0 投票
1 回答
434 浏览

swift - Swift - 编译器警告我没有解开一个可选项,但随后强迫我使用 ! 而不是?

我的代码中有一个错误,编译器会发出警告,用消息解开可选选项

可选类型“NSDate?”的值 未拆封;你的意思是用'!' 或者 '?'?

我的代码是

我想用?如果 dob 为 nil,则展开 dob 以允许对 dobText 的分配失败。编译器的消息表明我可以使用 ! 或者 ?但只有我用 dob 才开心!展开。如果我尝试使用dob?编译器抱怨并强迫我使用!

如果我强制展开 dob 并且它是 nil,那不会导致 formatter.stringFromDate(dob!) 行崩溃。有人可以解释一下这里发生了什么以及正确的方法吗

0 投票
1 回答
198 浏览

swift - 为什么 SwiftyJSON 为其常量创建隐式展开的可选?

SwiftlyJSON 的代码中,它使用强制展开定义了以下常量:

在这里将常量声明为隐式展开可选的目的是什么?

注意:我不是在问为什么或何时使用隐式展开,而是为什么在 SwiftyJSON 中使用它,因为我认为没有理由。

0 投票
1 回答
95 浏览

sprite-kit - 展开 SKPhysicsBody 不起作用

在我的项目中,我使用一个名为 RocketMaker 的类来创建新节点。在这个类里面,我有一个函数叫做applyRecurringForce()......

我的问题是我无法从主场景访问此功能。

从上面的代码开始,我收到两个错误,一个是println. ,一个是调用applyRecurringForce().

方法 1:没有强制展开...
1) println 错误是“可选类型 'SKPhysiceBody' 的值没有展开;你的意思是使用 '!' 或者 '?'?” 并建议我强制展开
2) 调用返回“无法调用‘applyRecurringForce’且没有参数”

方法2:我添加“!” 遵循建议的解决方案...
1) println 错误与之前的方法相同”:“可选类型 'SKPhysiceBody' 的值未展开;你的意思是用'!' 或 '?'?” 并再次建议我强制展开
2)调用返回与以前相同的错误:“无法在没有参数的情况下调用 'applyRecurringForce'”

Approach3:所以我遵循链,使用“physicsBody!!” 在覆盖函数的两行中。这一次,两个错误之一被删除...
1) println 错误消失
2) 调用返回“'SKPhysicsBody 没有名为'applyRecurringForce'的成员”

如果我注释掉电话,我会得到

物理节点名称:类型:表示对象:[名称:'rocket1'位置:{56, 294} 累积帧:{{16.849998474121094, 280.20001220703125}, {78.300003051757812, 27.5999755859375}}]

有谁知道发生了什么?这种双重展开对我来说看起来很奇怪。

0 投票
2 回答
62 浏览

ios - 当我尝试解开 var 时,出现错误

我正在尝试在var初始化时创建一个而不分配值。我是新来的swift,来自Objective-c,我在使用包装器/解包器时遇到了麻烦。我的代码中有以下内容:

我在第二行收到以下错误:

Binary operator '-=' cannot be applied to operands of type 'NSTimeInterval!' and '(Double)'

我应该怎么做才能解决这个问题,为什么会出现错误?

0 投票
1 回答
905 浏览

ios - 触发 segue 时出现错误“致命错误:在展开可选值时意外发现 nil”

我在我的应用程序中添加了一个 segue,当我触发 segue 时,应用程序在 iPhone 5S 模拟器中崩溃(在其他模拟器中,由于设备特定的代码,它在此之前崩溃。是问题的链接),消息“致命错误:在展开可选值时意外发现 nil”被打印到控制台,并且错误Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)显示在初始化数组的行上。我认为原因是因为我有一个UIImageView需要展开的 s 动画。这是我的做法:

但是 segue 是类型AnyObject,所以我认为这就是 unwrapping 不起作用的原因:

如何安全地解开图像,或者当 segue 被触发时根本不解开?我已经看到使用两个问号的方法(但这会导致“找不到接受提供的参数的 'init' 的重载”的错误)或 if 语句,但我不知道如何实现它。

更新

我尝试了这段代码,并且发生了和以前一样的事情

更新 2

我创建了一个包含所有图像的数组

然后我在动画中使用了数组

应用程序崩溃了,AppDelegate所以我添加了一个异常断点,崩溃发生在动画数组上:

这条消息被打印到控制台:

0 投票
1 回答
545 浏览

swift - Swift:为什么我需要在声明中解包非可选变量

我不明白为什么我需要在测试中的声明中“强制展开”变量类型。

让我举一个例子更清楚:

因此,目标显然是每次运行测试时都创建一个新的模拟服务实例。我只是不明白为什么我需要将此变量声明为MockService!类型。在这种情况下,类型后的感叹号真正意味着什么?

为了清楚起见,当我声明mockService: MockServiceXcode 抱怨我的测试类没有初始化程序时