Swift:Force Unwrapped 返回 nil 而不会崩溃

标签 swift swift2 forced-unwrapping

下面是我在 Playground 上的代码:

let aNumber : NSNumber? = nil

func testFuction() -> NSNumber!{
    return aNumber
}

dump(testFuction())

输出:

- nil

我很困惑为什么它没有崩溃。返回值 NSNumber! 显然是 nil,但它被强制解包了。这不应该崩溃吗?请解释。

最佳答案

您正在返回一个隐式解包的可选值,NSNumber!。返回的基础数据类型是可选的,但它会在您每次使用时自动解包。 Swift 包含此类型,因此您不必在您知道在某个点后将变为非 nil 的变量后使用感叹号(例如,一个实例变量以 nil 开始但在使用之前被初始化) .隐式展开的可选值允许包含 nil 值,但如果变量在实际尝试使用时为 nil,则会触发运行时错误,因为它在使用时被强制展开。

关于Swift:Force Unwrapped 返回 nil 而不会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37932595/

相关文章:

ios - Swift 展开的值仍然显示为可选

ios - 触发 segue 时出现错误 "fatal error: unexpectedly found nil while unwrapping an Optional value"

ios - UIImagePickerController 的图像是否可能没有 CGImage 值?

swift - 不明白这个尾随闭包

ios - 将视频从相机转换为字节数组 Swift

ios - 旋转后接收两个不同高度的键盘

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

ios - 基于二进制数据设置 UIImageView 的图像

swift - 如何处理导致 "try?"的 Swift 的 "Result of try? is unused"?

ios - 具有多个参数和 "AND behaviour"的 NSPredicate