【发布时间】:2016-08-01 17:31:23
【问题描述】:
if let mathematicalSymbol = sender.currentTitle {
brain.performOperation(mathematicalSymbol)
}
上面的代码引入了下面的错误;
可选类型“字符串?”的值未拆封;你的意思是用 '!'还是“?”?
从这个屏幕截图中可以看出;
sender.currentTitle 是可选的。
这是 Apple 的“The Swift Programming Language (Swift 2.2)”的摘录,其示例代码就在其下方;
如果可选值为
nil,则条件为false,代码 大括号中的被跳过。否则,可选值是 unwrapped 并且 分配给let之后的常量,这使得展开值 在代码块中可用。
这是该摘录的示例代码;
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
因此,出于这些原因,我认为要么是我遗漏了什么,要么是我遇到了一个错误。
我也在 Playground 上尝试过类似的东西,但没有收到类似的错误;
这是我的 Swift 版本;
Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)
Target: x86_64-apple-macosx10.9
【问题讨论】:
标签: swift xcode compiler-errors optional-binding