2017-01-20 52 views
0

所以我剛剛開始學習Swift,對於這個任務,我希望它做的是當你從屏幕上顯示的列表中鍵入語言時,它將返回「hello world」用同樣的語言。我有一個switch語句,並且由於某種原因它只執行默認情況。我想我已經設置正確,它應該像所有的switch語句?switch語句只執行默認情況Swift

這是我到目前爲止在我的代碼中。

class ViewController: UIViewController { 

    @IBOutlet weak var myLabel: UILabel! 

    @IBOutlet weak var myField: UITextField! 

    @IBOutlet weak var myImage: UIImageView! 

    @IBAction func buttonPressed(_ sender: Any) { 
     myLabel.text = myField.text 
     let language: String = "English" 
     switch language { 
      case "French": 
      myLabel.text = "Bonjour le monde" 
      case "Spanish": 
      myLabel.text = "Hola mundo" 
      case "German": 
      myLabel.text = "Hallo welt" 
      case "Italian": 
      myLabel.text = "Ciao mondo" 
      default: 
      myLabel.text = "Hello world" 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     myField.text = myLabel.text 
    } 
} 

我在每種情況下都試過了,但仍輸出默認情況。我是否正確地做這件事? 請記住我對Swift非常非常新穎

+2

它會去,因爲你設置'語言=「英語」'並沒有爲 –

+0

@詹姆斯你能指望它做什麼,因爲你沒有給一個定義爲任何情況下,默認情況下,唯一會發生的情況('「英文」')? – Alexander

+2

您可能是指'切換myField.text'。考慮一下,你必須打開可選的地方。 – vadian

回答

1

每次給予language =「English」。這就是爲什麼它執行默認情況。

@IBAction func buttonPressed(_ sender: Any) { 
    let language: String = myField.text 
    // use textfield text to check in Switch 

    switch language { 
     case "French": 
     myLabel.text = "Bonjour le monde" 
     case "Spanish": 
     myLabel.text = "Hola mundo" 
     case "German": 
     myLabel.text = "Hallo welt" 
     case "Italian": 
     myLabel.text = "Ciao mondo" 
     default: 
     myLabel.text = "Hello world" 
    } 
} 
+1

感謝提示!這工作!我也想驗證一下,如果我想用語言改變圖像,我可以在每種情況下都包含它。 – James

相關問題