if let mathematicalSymbol = sender.currentTitle {
brain.performOperation(mathematicalSymbol)
}
上記のコードでは、以下のエラーが発生しています。Swift 2.2のオプションのバインディングのバグ?
オプションの値 'String?'の値アンラップされていない。 '!'を使用することを意味しましたか?または '?'?
このスクリーンショットからわかるように、
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)"
}
は、したがって、これらの理由から、私はどちらか、私はが何かを見つからないか、私はバグを打つだということだと考えています。 私はプレイグラウンドでも同様のことを試しましたが、同様のエラーは発生しませんでした。ここで
私スウィフトバージョンです。
Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)
Target: x86_64-apple-macosx10.9
おそらく関連:[の奇妙な行動スウィフトのANYOBJECT](http://stackoverflow.com/questions/33388830/the-strange-behaviour-of-swifts-anyobject)。 –