问题标签 [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 回答
848 浏览

ios - 如何在 Swift 3 中打开模态类对象

型号类:

视图控制器:

应该如何解包,因为输出是可选的,如果我尝试解包给出条件绑定nameArr[indexPath.row]的错误初始化程序必须具有可选类型,而不是“国家模式”

它工作正常我没有将 arr.countryId 与 arr.name 连接起来

0 投票
2 回答
616 浏览

swift - Swift viewcontroller 声明返回 nil

我收到臭名昭著的:致命错误:在展开可选值时意外发现 nil

在我的 saveNewItem 声明中,这是对另一个视图控制器的调用:来自主视图控制器的 SaveNewItem 调用它。

我很困惑为什么当 print 语句声明它在声明中有一个值存储时返回 nil 。

我发现要继续该过程的绕过方法是检查(cmd +单击)它在控制台中复制我的打印语句的 saveNewItem 常量,这给人的印象是它创建了一个对象。

我还尝试使用故事板链接视图控制器,如以下问题所示: How to connect ViewController.swift to ViewController in Storyboard?

0 投票
1 回答
988 浏览

swift - 强制解包返回类型?

我开始考虑选项和强制展开,除了在一个特定的上下文中:当它是函数的返回类型时。

有什么区别:

此外,当我使用 的返回值时NSData!,我被迫使用?这似乎很奇怪。

?如果我强制打开退货,为什么我需要?

0 投票
1 回答
79 浏览

swift - 为什么`+=`不适用于隐式展开的选项

为什么不适+=用于隐式展开的选项,例如:

为什么不像count = count + 10?

0 投票
1 回答
41 浏览

swift - 我应该从框架中强制解包吗?

我正在用 Swift 构建一个框架,但我不确定处理以下场景的正确方法。

如您所见,我正在强制解开path(forResource:ofType:). 因为我正在编写框架,所以我知道我正在加载的文件将始终存在于包中。所以我不应该担心强制展开命令的危险。

然而...

...该框架将作为开源发布。

因此,从技术上讲,开发人员将能够(即使他们不应该)删除我正在加载的资源。在这种情况下,当然,前面的指令会使整个应用程序崩溃。

这就是为什么我想知道:我是否遵循正确的方法?我应该用 a 替换每个强制解包指令guard以使框架“防黑客”吗?

0 投票
0 回答
65 浏览

php - 防止 div 换行并显示在一个可滚动的行上

我试图让我的所有图像都显示在一个可以向左或向右滚动的水平线/行上。但是,无论我做什么,我似乎都无法让图像退出换行到下一行。它们是响应式的,所以如果我把屏幕变小,就会出现 2 个图像,其余的会换行。如果我全屏显示几个图像,其他 15 个相应地换行。但是,我希望他们保持在一条线上。我不在乎溢出是否隐藏或者溢出是否从页面外滚动,我只是希望他们退出包装。

这是该网站现在的样子:

截屏。我将父 div“moviesbox”设为深灰色,这样您就可以看到 div 延伸了多远,我使用浅灰色来显示 div 区域。

这是我用来将图像生成到 div 中的代码:

fetch_assoc()): ?>

这是我正在使用的 CSS。我更喜欢使用 CSS,但如果不是,我愿意接受其他修复。

谢谢。

0 投票
1 回答
1453 浏览

swift - Swift4:从“数据”强制转换?to 'Data' 只解开可选项;你的意思是使用'!'?

在 Swift 4 的最后一次更新中,我总是在同一个地方遇到同样的错误,我不知道如何清除它......

如果尝试使用!代替 ?但错误继续朝着相反的方向发展。

两个日期都有错误?和数据?

这就是代码:

所有其他错误都消失了,但这一个让我头疼。

0 投票
0 回答
560 浏览

swift - 我是否应该始终避免强制展开?

我最近开始了一个项目,其中使用了很多强制解包,因为 XCode 建议在有人需要解包可选时将其作为修复。不用说有很多崩溃,所以我们进行了很大的重构以将它们全部删除,以支持可选绑定,将属性设置为非可选、零合并并允许函数采用可选值。我们在编码指南中禁止了它们,并开始使用 swiftlint 以确保人们不会将它们放回原处(使用 swiftlint 时,强制展开被标记为警告)。

但是,我一直遇到以下情况,我 100% 确定该值不为零(在这种情况下,我们已经在排序之前检查了数组不为空)。使用起来感觉很浪费,if let而且允许findProvider接受可选参数作为参数有点奇怪,但如果我把它留在 swift lint 中会标记它,我们对强制解包的禁令将不得不取消,我想有人可以可行地改变这个代码,所以sortedParsedNumbers.firstis nil。在这里做的最好的事情是什么?

0 投票
1 回答
1099 浏览

ios - 在 Swift 中展开可选崩溃

我是新手,试图了解调试,我正在解决一个挑战。我已查询此问题的解决方案,但未在 StackOverflow 中找到。我想更好地了解这里发生了什么以及为什么会发生这种崩溃。

我已经通过源代码中的打印语句找到了这个错误。我在此函数的开头添加了一条打印语句,以确认正在到达该块。

当我运行应用程序并单击设置模式中的错误之一时,打印语句将打印到控制台,然后应用程序崩溃。Xcode 告诉我问题出在这一行:

错误读取

“线程 1:致命错误:在展开可选值时意外发现 nil。”</p>

所以,我知道使用 nil 值会使应用程序崩溃。我也知道我在这里使用选项。我被困在下一步该怎么做。

0 投票
2 回答
63 浏览

swift - 需要帮助理解 Swift 中便利初始化程序和实例变量展开之间的交互

我正在翻阅有关初始化程序和展开的 Swift 文档,但我无法理解有关其工作方式的一些基本知识。

目标:我想子类化SKShapeNode并使用let reverse : Bool来定义一个实例变量,该变量只在构造函数中设置并且永远不需要修改。这似乎是定义此类变量的正确方法,但这在下面的代码中会爆炸。

以下代码有效,即它可以编译,不会崩溃并获得我想要的行为。

但是,当我将其修改为 use 时let reverse : Bool,出现错误:Class 'BeamedNotesNode' has no initializers在编译时:

看来我应该能够使用let并避免丑陋的强制解包实例变量。我如何在这里实现这一目标?