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

swift - 用于条件绑定的 Swift Initializer 必须具有 Optional 类型,而不是 '[AVCaptureDevice]'

我的 swift 项目中有以下代码

当我运行此代码时,它在 if 行上显示错误:

我尝试?在之后添加.devices,但这给出了这个错误:

我该怎么办?

0 投票
1 回答
538 浏览

swift - 检查 nil 的非可选值

我正在快速创建一个函数来检查如果非可选值返回 nil。我的目标只是处理该异常并避免应用程序因意外的 nil 值而崩溃。

我的班级有两个变量:

我不想检查optionalValue为零。编译器正在返回Optional.noneOptional.some枚举而不是nil或某个值。

我的问题:

我面临的问题是我无法检查此值是否为空。至于清空编译器返回none,而对于 avalue它返回一些定义在Swift Optional Enum. 只是在有值Implicitly Unwrapped Optional时抛出错误。nil

我如何检查应该作为非可选值的值 nil ?

更新#1:

我的代码:

0 投票
2 回答
70 浏览

swift - 在 Swift 中将可选绑定转换为错误处理的过程是什么?

我正在学习使用 Locksmith 框架存储令牌的 OAuth 教程。本教程是用旧版本的 Swift 和旧版本的 Locksmith 框架编写的。在 Swift 4 中重新创建示例时,我注意到 Locksmith 4.0 使用带有 do try catch 块的错误处理。我正在尝试将教程的可选绑定转换为使用框架的错误处理方法。我第一次尝试自己,但我无法理解为什么教程使用可选绑定的心理联系。

这里是教程的摘录:

这就是我所拥有的。我相信我在滥用与可选绑定相关的 catch 语句:

0 投票
1 回答
446 浏览

swift - Swift 模式匹配 - 在单个语句中切换、向下转换和可选绑定

有没有办法合并switch下面的语句以包含可选绑定?

一点背景背景...

首先这是我的结果类型:

Facebook SDK 的一个扩展:

最后,我要重构的那段代码。我的目标是避免重复self.present(error:)代码:

0 投票
0 回答
16 浏览

swift - 使用惰性变量的可选绑定问题

我正在使用 UIPageViewController 并且我有一组视图控制器

但有时我在滚动时会遇到这个错误:

在展开可选值时意外发现 nil

0 投票
2 回答
81 浏览

swift - 可选绑定评估 optional(nil) 的不良行为

将 xCode 更新到版本 10(和 swift 4.2)后,我对可选绑定有一个奇怪的行为

代码如下,它是关于读取 json 文件的,T是一个泛型类型(这里String

在 xCode 9.4.1 和 Swift 4.1 中,我有以下日志:

这就是我想要的,values[langCode!]并且nil演员也返回nil,所以else块被执行。

在带有 Swift 4.2 的 xCode 10 中,我有以下日志:

if let即使 values[langCode!] 为“null”,这里也会执行该块。

一个区别是 swift 4.2values[langCode!] as? T是 anOptional(nil)而 Swift 4.1values[langCode!] as? Tnil.

我检查了4.2 版的更改日志,但看不到可以解释该行为的内容,我还检查了 JSONSerialization 没有进行任何更改(用于序列化 json 文件)

有人在切换到 Swift4.2 时也经历过这种事情吗?有人有解释吗?和解决方法?

在这种代码中,使用可选绑定有什么好处?if (values[langCode!] != nil) {...写而不是可选绑定会很糟糕吗?

谢谢

0 投票
1 回答
56 浏览

swift - 同时初始化和绑定swift可选成员?

我的类包含像这样的可选成员属性:

当我初始化并想要使用这些变量时,我最终不得不做这样的事情:

有没有办法快速结合这两个操作?

0 投票
3 回答
86 浏览

swift - 如何使用可选绑定检查负表达式中的多个值?

我想检查两个可选变量是否都为空。例如,在 C 中,

有没有办法在 Swift 中做到这一点?

0 投票
3 回答
3234 浏览

ios - 为什么“UIView”类型的值没有来自引用 UIView 变量的成员?

我想将变量引用到特定函数。但是,有一个错误叫做Value of type 'UIView' has no member 'lineTo' Clearly, the whatSelectObjectvariable contains the classes that which members are exists. 所以我使用了 If 语句,“可选绑定”。但结果是一样的。

!此代码是相关简化代码的示例,以帮助受访者理解它。我可以直接引用object变量,但我必须绝对引用whatSelectView

为什么会导致引用变量出错?还是我对可选绑定有误?

0 投票
2 回答
143 浏览

swift - 在 Swift 中,当每对元素都是字符串时,如何遍历一个数组以获取 2 个变量?和一个字符串

我想遍历数组 String?,String 重复对,但我无法正确形成“for case let (a,b) in array”。

我想出的最好的方法是创建一个 {String?, String} 的临时结构并创建一个临时结构的数组,然后对其进行迭代,但我想跳过这一步。

下面是最后一个 for 循环显示错误 Xcode 报告的基本示例。

这是我想出的

是否有另一种方法只是使用 for 循环