2016-11-25 7 views
1

変数が表示されているいくつかのラベルのためではなく、直前オプション(....)と完全にSwift2と、今働いていた私のコード...スウィフト2のオプションは、ラベルに表示

良いコード

var sstitre1:String! 
print(sstitre1) 

値がsstitre1に設定される実行セグがあります。 Swift3で

var sstitre1:String? 

    sstitre1 = json[21].string 


override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "hugo" 
    { 
     if let destinationVC = segue.destination as? MonumentViewController{ 

      destinationVC.sstitre1 = "\(sstitre1)" 

     } 

    } 
} 

、私が手VEの: オプション(.....)

私はオプションを取り除きたいです。

私はstackoverflowからのいくつかのポストでは、いくつかのコードの変更を行ったことをお勧めします。

var sstitre1:文字列!

If let espoir = sstitre1 { 
print (espoir) 
} 

しかし残念ながら、それはまだオプションが表示さ....

かなり奇妙な....

+1

可能な重複します(http:// stackoverflowの.com/questions/39537177/swift-3-incorrect-string-interpolation-with-implicitly-unwrapped-optionalals) – vadian

+0

はい、同じ問題ですが、それに対処するための適切な方法はありませんでした。 – Hugo75

+0

どのように 'sstitre1'を割り当てていますか? '' Optional(...) ''を文字列自体に焼いているような感じです。 – Hamish

答えて

0

ラインで

destinationVC.sstitre1 = "\(sstitre1)" 

常に文字列リテラル"Optional(foo)"destinationVC.sstitre1に割り当てられています変数が含まれていると仮定して"foo"

ソリューションは、文字列の補間に

destinationVC.sstitre1 = sstitre1 

PSを削除することです:あなたは本当により説明変数名を使用する必要があります

[暗黙的に開封されたOptionalsスイフト3間違った文字列補間]の
+0

これを試してみてください。フランス語;) – Hugo75

+0

あなたは間違いなくロック!私はsstitre1を修正する;) – Hugo75