2
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
4

1 に答える 1