2017-09-23 5 views
0
import UIKit 

class ViewController: UIViewController { 
    @IBAction func ButtonClicked(_ sender: Any) { 

     print("SwagGODX") 

     if let name = "bestgame.text" { 

     LABEL.text = "hello" + "name" 
     } 

    } 
    @IBOutlet weak var LABEL: UILabel! 
    @IBOutlet weak var bestgame: UITextField! 
} 

それはエラーで示しています条件付きバインディングエラー非常に混乱して

"Initializer for conditional binding must have Optional type, not 'string'

私はCOMPLETE NOOBだとチュートリアルに従うが、それはインストラクターのために働くいくつかの理由のためではなく、されませんでした私。誰かが私が5歳のようにそれを説明することができたら、私はそれを高く評価します。

答えて

3

あなたは"bestgame.text"を引用符で囲んでいます。文字列定数"bestgame.text"を割り当てるようにコンパイラに指示しています。それはオプションではありません。引用符を取り除く:

if let name = bestgame.text { 
    label.text = "hello" + name 
} 

またことに注意してください(。。あなたもlabel.textへの割り当てにnameの周りに引用符を持つべきではないことに注意してください私は、あまりにも上記のコードでは、という固定しました)変数名は小文字で始まり、 "camel case"(複合語の各単語はthisIsMyLabelなどの大文字で始まる)を使用する必要があります。コンセントの名前をLABELからlabelに変更しました。宣言を一致するように変更する必要があります。

if let name = bestgame.text, 
    !name.isEmpty { 
    label.text = "hello" + name 
} 

また、名前が空文字列でないことを確認するかもしれません

関連する問題