if let mathematicalSymbol = sender.currentTitle {
brain.performOperation(mathematicalSymbol)
}
上記のコードでは、以下のエラーが発生します。
オプションの型「文字列?」の値 開封されていません。「!」を使用するつもりでしたか? また '?'?
このスクリーン ショットでわかるように。
sender.currentTitle
はオプションです。
これは、Apple の「 The Swift Programming Language (Swift 2.2) 」からの抜粋で、そのすぐ下にサンプル コードがあります。
オプションの値が の場合
nil
、条件はfalse
であり、中括弧内のコードはスキップされます。それ以外の場合、オプションの値はアンラップされ、 の後に定数に割り当てられます。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