ios - 快速将 if else 结构转换为 switch case

标签 ios swift if-statement switch-statement

我是编程新手,我正在尝试将此 if else 结构转换为 Swift 语言的 Switch 案例,非常感谢您的帮助,谢谢。

这是我的代码

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "ShowDefinition") {
        if let destinationViewController = segue.destinationViewController as? EnglishViewController {
            if let definition = sender as? String {
                if definition == "Abstraction" {
                    destinationViewController.titleMsg = "Abstraction"
                    destinationViewController.definitionMsg = "definition 1"
                } else if definition == "Binary System" {
                    destinationViewController.titleMsg = "Binary System"
                    destinationViewController.definitionMsg = "definition 2"
                } else if definition == "Computer" {
                    destinationViewController.titleMsg = "Computer"
                    destinationViewController.definitionMsg = "definition 3"

                } else if definition == "Internet" {
                    destinationViewController.titleMsg = "Internet"
                    destinationViewController.definitionMsg = "definition 4"

                } else if definition == "Virtual Reality" {
                    destinationViewController.titleMsg = "Virtual Reality"
                    destinationViewController.definitionMsg = "definition 5"

                }
            }
        }
    }
}

最佳答案

像这样:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "ShowDefinition") {
        if let destinationViewController = segue.destinationViewController as? EnglishViewController {
            if let definition = sender as? String {
                switch definition {
                case "Abstraction":
                    destinationViewController.titleMsg = "Abstraction"
                    destinationViewController.definitionMsg = "definition 1"
                case "Binary System":
                    destinationViewController.titleMsg = "Binary System"
                    destinationViewController.definitionMsg = "definition 2"
                case "Computer":
                    destinationViewController.titleMsg = "Computer"
                    destinationViewController.definitionMsg = "definition 3"
                case "Internet":
                    destinationViewController.titleMsg = "Internet"
                    destinationViewController.definitionMsg = "definition 4"
                    destinationViewController.titleMsg = "Abstraction"
                    destinationViewController.definitionMsg = "definition 1"
                case "Virtual Reality":
                    destinationViewController.titleMsg = "Virtual Reality"
                    destinationViewController.definitionMsg = "definition 5"
                default:
                    destinationViewController.titleMsg = ""
                    destinationViewController.definitionMsg = ""
                }
            }
        }
    }
}

检查你想用 default 值做什么,如果没有 case 匹配,将被命中。

关于ios - 快速将 if else 结构转换为 switch case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39971530/

相关文章:

ios - UIView 动画完成 block 未被调用

c++ - 在字符串的最后一个字符中搜索标点符号

ios - 按下播放按钮时,YouTube IFrame 播放器显示 'This Video is Unavailable'

ios - 如果更改基线偏移属性,UILabel 属性文本不能有多行

xcode - 关于 Swift 3.0 和 for 循环的小语法问题

swift - 将数据从 viewcontroller tableview 传递到另一个 View Controller

swift - 在 Swift 中将文本附加到文档文件

python - 使用 if 检查实例

python - 编写干净的代码 : Nested For/If/Elif in Pyramid

iOS NSDictionary : long value for one key