问题标签 [optional-values]

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 投票
2 回答
668 浏览

swift - NSSet 中的 Swift 可选值

Self.vertices 是一个 NSSet。我无法从可选选项中获取顶点值

下面的代码在游乐场崩溃。

0 投票
2 回答
8325 浏览

swift - swift: if-let 并行赋值

我正在尝试制作一个具有多个值的简单 if-let 语句。if仅当所有可选 var 都非 nil 时才应执行该块,并且应将它们分配给仅存在于该if块内的新 let-var(常量?),就像普通的单赋值 if-let 一样。

这甚至可能吗?如果不是(我猜),您认为 Apple 将来会(或应该)实现这一点吗?

0 投票
4 回答
430 浏览

arrays - 展开可选值时发现 nil(音乐库)

我正在构建一个音乐播放器,但是当我在模拟器中运行时应用程序崩溃并给出此错误:index 0 beyond bounds for empty array,并在我尝试在 iPhone 上运行时说:{

编辑:似乎它没有访问我 iPhone 上的本地音乐库并将歌曲添加到数组中。

0 投票
1 回答
221 浏览

syntax - 使用 NSDictionary 的 Swift 可选链接

请帮忙重拍这个

单行中的可选链接语法。我试着这样做:

并得到一个错误:

这是我的函数头:

可能吗?我问它是因为每当我使用 NSArrays 和 NSDictionaries 时,我的代码看起来都很糟糕:

有什么建议吗?

0 投票
3 回答
3314 浏览

ios - 测试“nil”和“.None”的可选项有什么区别?

我在 swift 语言中随处可见,人们使用 if 语句测试可选值,以便他们可以安全地强制展开,有两种方式:

或者

有什么区别,它会以某种方式影响我的应用程序/代码吗?什么更好?

0 投票
3 回答
173 浏览

ios - 在 Swift 中对 Optional 值进行测试后解包时出错

今天早上运行我的代码时遇到一个奇怪的错误。

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

这是我的简单对象:

但我在 if 语句 ( FQ.match() -> FQ?) 中测试 nil 值:

但是调试它:

fq 的打印描述:(project.FQ?) fq = Some {
rating = 6.0999999
phone = "+33 1 53 10 87 19"
}

该值不为零。使用电话号码设置标签值时调试器失败。

我以为我理解 Optional 但看起来我没有。我错过了什么?

0 投票
1 回答
2521 浏览

ios - Swift - 在展开可选值时意外发现 nil - 从委托调用变量

我正在尝试创建我的第一个 iOS 应用

当我尝试从委托视图控制器访问变量时,出现此错误“在展开可选值时意外发现 nil”

我正在尝试将按下的单元格值设置为目标控制器上的标签文本

这是第一个控制器

以及我希望更改 label.text 的目标控制器

0 投票
1 回答
94 浏览

xcode - 如何将包含的强制值转换为包含的可选值?

将可选值转换为强制值非常简单:

在相反的方向上它甚至更简单,因为没有展开:

将包含可选值的强制值数组转换为包含强制值的强制值数组会稍微复杂一些:

这里有点不同的是你不需要!解开值。你只是告诉它期望什么类型。

这就是我卡住的地方。对我来说,做相反的事情应该是这样的:

但这给出了错误:

“字符串”与“字符串”不同?

简单地说,它给出了同样的错误:

var myOtherArray: 数组 = myArray

我以为我对此有一个公平的把握,但现在我不确定。如何将包含的强制值转换为包含的可选值(不使用休闲 for 循环)?

休闲for循环(不理想):

0 投票
1 回答
4593 浏览

swift - 传入值为 nil 的函数参数的默认值

有没有一种巧妙的方法来组合默认函数参数值和可选参数,所以当在函数调用中指定参数时,参数采用提供的默认值,但它的值是 nil?

例如:

...或者是为成员常量/变量提供默认值的最佳选择,然后仅在向构造函数提供值时才更改它们,如下所示:

考虑到该领域的其他语言功能,感觉应该有一个更简洁的解决方案。

0 投票
3 回答
481 浏览

arrays - 使用“+=”运算符将数组连接到另一个可选值数组

我有一个对象数组:

如果我想用 Foo 对象附加另一个数组,我可以使用+=

这个有效。

但是,如果我将数组中的 Foo 对象设为可选:

进行连接会引发错误:

我绝对不明白问题出在哪里,CGFloat 类型与此有什么关系?