是否可以使用 switch 方法将 2 个字符串匹配在一起?

Is it possible to use the switch method to match 2 Strings together?

我有 16 个字符串,用户可以选择作为变量从之前的 VC 传递到当前的 VC,但用户必须选择 只有 2 个字符串. 变量的名称是 startingLengthendingLength 这些变量是从前面 VC 的 16 个中选择的 2 个字符串。 我想使用 switch 方法来确定如果某些字符串匹配会发生什么,但是我收到此错误。

无法将类型 'String' 的值转换为预期的参数类型 'Bool'

这是我的代码。

    import UIKit

    class LengthOutputViewController: UIViewController {


        @IBOutlet weak var lengthOutputLabel: UILabel!

        //MARK: LENGTH VARS
        var startingLength = String()
        var endingLength = String()
        var lengthTextFieldValue = Double()
        var output = Double()



        override func viewDidLoad() {
            super.viewDidLoad()


        }
        override func viewDidAppear(_ animated: Bool) {

            switch startingLength || endingLength { // Error: Cannot convert value of type 'String' to expected argument type 'Bool'
            case :"Feet" || "Inches" // Error: Cannot convert value of type 'String' to expected argument type 'Bool'



            }
        }

感谢您的帮助。

尝试

 override func viewDidAppear(_ animated: Bool) {

        switch (startingLength , endingLength) {
        case  ("Feet",  "Inches"):
            print("test")

        default : break
        } 
    }

在基于 Documentation 的 switch 方法中,您可以比较 1 个变量但具有多个值。

因此您可以将 startingLength"Feet" || "Inches" 进行比较,将 endingLength"Feet" || "Inches" 进行比较,但不能在同一个开关盒中进行比较。

因此,使用 switch case 执行此操作的一种方法是将存储在 startingLength 和 endingLength 中的字符串值传递到应用 switch case 效果的函数中。 例子

override func viewDidAppear(_ animated: Bool) {
       self.testString(string: startingLength)
       self.testString(string: endingLength)
    }

  private func testString(string: String) {
       switch string {
           case "Feet", "Inches":
         // Do what supposed to happen
           break
           default:
              break
       }
  }