2017-01-20 48 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

相关问题