文本字段中两个数字之间的有效数字

Valid number between two numbers in a textfield

只允许输入介于 x 和 y 之间的有效数字。并在输入无效数字时显示错误消息。

我搞砸了一些 if 语句并将所述 x 和 y 数字放在一个范围内,但我不知道如何让它工作并显示它让我们说一个标签。

当在文本字段中输入有效数字并按下按钮时,我希望输出显示在标签中。当按下按钮时输入无效数字时,标签中会显示错误。

检查范围是否包含 Swift

中的值

1.模式匹配运算符 ~=

 func validateRange(_ value : Int) {
    if 2..<50 ~= value {
        //in range
    } else {
        // displayLabel.text = "Error message"
    }
}

2。 .包含方法

func validateRange(_ value : Int) {

    if (2..<50).contains(value) {
       //in range  
    } else {
        // displayLabel.text = "Error message"
    }

}

示例:

@IBAction func tappedOnOkButton(_ sender: Any) {

   if let value = Int(numberTextField.text) {
      validateRange(value)
   } else {
      // error 
   }
}

您可以通过多种方式实现这一目标。以下是进入该领域的最佳方式。

func validateNumber() {
     yourLbl.text = checkNumber(startNumber: 10, endNumber: 20, numberToCheck: 11)
}

我创建了一种方法,它有多种方法...您可以在方便的时候保留最好的

func checkNumber(startNumber: Int, endNumber: Int, numberToCheck: Int) -> String {
    //WITH THE HELP OF `~=` operator
    if startNumber...endNumber ~= numberToCheck {
        return "\(numberToCheck) is within the range of \(startNumber)-\(endNumber)"
    } else {
        return "\(numberToCheck) is not within the range of \(startNumber)-\(endNumber)"
    }

    //WITH THE HELP OF .contains mathod
    if (startNumber...endNumber).contains(numberToCheck) {
        return "\(numberToCheck) is within the range of \(startNumber)-\(endNumber)"
    } else {
        return "\(numberToCheck) is not within the range of \(startNumber)-\(endNumber)"
    }

    //WITH THE HELP OF switch statement
    switch numberToCheck {
    case startNumber...endNumber:
        return "\(numberToCheck) is within the range of \(startNumber)-\(endNumber)"
    default:
        return "\(numberToCheck) is not within the range of \(startNumber)-\(endNumber)"
    }

    //WITH THE HELP OF if statement
    if case startNumber...endNumber = numberToCheck {
        return "\(numberToCheck) is within the range of \(startNumber)-\(endNumber)"
    } else {
        return "\(numberToCheck) is not within the range of \(startNumber)-\(endNumber)"
    }
}