问题标签 [optional-binding]

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 回答
604 浏览

swift - 下划线符号是否会忽略或检查 Swift 中 switch 语句中的无效性?

我在 Swift 中有这样的 switch 语句:

元组是 type (SomeObject?, SomeObject, SomeObject?),我用英语说的是:匹配前两个元素为nil,而第三个(可选)nil 的情况。

Xcode 7 告诉我,由于我没有使用绑定someObjectcurrent,我应该用下划线替换它。但是如果我用下划线替换元组中的第一个元素,它是否也与第一个元素为 nil 的情况相匹配,因为这_意味着编译器会忽略该值?对于第一个元素为零的情况,我有一个单独的案例。

作为记录,我的代码看起来仍然像我期望的那样工作,但我想确定,我在任何地方都找不到任何文档。

0 投票
8 回答
200273 浏览

ios - 条件绑定:if let error - 条件绑定的初始化程序必须具有可选类型

我正在尝试从我的数据源和以下代码行中删除一行:

导致以下错误:

条件绑定的初始化程序必须具有 Optional 类型,而不是 UITableView

这是完整的代码:

我应该如何更正以下内容?

0 投票
1 回答
2752 浏览

ios - 如何在 Swift 2 中使用可选绑定

我是学习 Swift 的新手,所以我决定不如学习 Swift 2。到目前为止,一切对我来说都是有意义的,除了下面的代码片段。希望有人可以为我阐明这一点。

代码的顶部直接来自 Apple 的 Swift 2 电子书,它如何使用可选绑定将字符串转换为 int 对我来说很有意义。第二段代码基本相同,只是字符串来自 UITextField 的 text 属性。代码的底部给出以下错误:

操场执行失败:/var/folders/nl/5dr8btl543j51jkqypj4252mpcnq11/T/./lldb/843/playground21.swift:18:18:错误:可选类型“字符串?”的值 未拆封;你的意思是用'!' 或者 '?'?如果让 num = Int(numberString) {

我通过使用这条线解决了这个问题:

我只想知道为什么第二个示例需要 ! 而第一个没有。我确定问题与我从文本字段中获取字符串这一事实有关。谢谢!

0 投票
4 回答
72 浏览

swift - 你如何对 optional 的 optional 执行可选绑定?

你如何对可选的可选进行可选绑定?

例如,假设 UIViewController 的 navigationController 属性是可选的。我应该使用方法#1 还是方法#2,还是有第三种方法?

方法#1

或者

方法#2

0 投票
2 回答
32 浏览

swift - Performing a method that uses variables that come from optional

If I need to perform a method whose multiple parameters' original source are optional, is doing multiple optional binding before performing the method the cleanest way to go about this?

e.g. UIStoryboardSegue's sourceViewController and destionationViewController are both AnyObject? and I need to use source's navigationController to perform something.

0 投票
1 回答
1180 浏览

swift - 可选绑定的命名约定

最初阻止我在代码中加入太多可选绑定的一件事是添加了更多变量名。例如,我通常会写:

因为替代方案似乎有点混乱:

那是很多香蕉。我见过人们使用类似b新变量名的东西(在更大的代码块中可能难以阅读),但我想知道是否有一个普遍接受的变量名样式的标准可以使用可选绑定?谢谢阅读。

0 投票
2 回答
893 浏览

swift - 仅当一个表达式中的可选项不是 nil 时才调用函数?

我知道可以这样做:

甚至像这样:

但是我正在寻找是否有一种方法可以在一个表达式中执行此操作,如下所示:

0 投票
1 回答
1732 浏览

swift - 为什么使用可选绑定?

我知道这个问题就在这里,但它只是部分回答了我的问题,我无法对答案发表评论,所以我不得不在这里发帖。

可选绑定和仅使用 有什么区别?我的理解是当你使用 ? 解包一个变量,如果它包含一个 nil 值,那么使用它的代码不会运行。(如果不是这种情况,请纠正我。)

0 投票
1 回答
48 浏览

ios - 即使在可选绑定之后,可选字符也不会被删除

我在推送时从先前的视图控制器设置了一个可选属性,但即使在可选绑定其在控制台中打印可选字符之后也是如此。这是我的代码

它给出如下输出:

我做错了什么?

0 投票
1 回答
108 浏览

swift - Swift 风格:函数返回您需要的可选类型才能继续,处理此问题的最佳实践是什么?

首先,我将使用cellForRowAtIndexPath它作为我的示例,因为 de-queue 函数返回一个可选项并忽略显式解包它是完全安全的事实。

我的问题是:什么被认为是“最佳”方式或风格来处理您调用返回可选的函数但您需要从此函数返回以继续操作的情况。我发现第一个片段非常笨拙和丑陋:

另一种选择是:

我们用 Swift 2 摆脱了条件可选绑定的塔,但我仍然发现缺乏一种优雅的方式来处理可选的而不用大括号。