检查数字的 UITextfield 间隔

Check UITextfield interval of numbers

我如何检查 UITextField 中的值是否是 1 - 100 之间的数字区间,如果该数字在该区间内则将值发送到另一个 UIViewController?如果该值不在该间隔内,则显示警报。

我的另一个控制器有一个 var receivedValue = "",我将用它来填充 UILabel。

这是我的代码:

import UIKit

class ChildViewController: UIViewController {
    @IBOutlet weak var insertNumberTextField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        insertNumberTextField.delegate = self
    }

    @IBAction func checkNumberIntervalButton(_ sender: UIButton) {
        if insertNumberTextField.text == "\(1..<100)"{
            print("Number is in interval 1 - 100.")

            navigationController?.popViewController(animated: true)

            dismiss(animated: true, completion: nil)
        } else {
            let alert = UIAlertController(title: "Try again", message: "Sorry but this numer is not in the inverval 1 - 100. Try again.", preferredStyle: .alert)

            alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))

            present(alert, animated: true, completion: nil)

            insertNumberTextField.text = ""

            print("Number is not in the inverval 1 - 100.")
        }
    }
}

extension ChildViewController: UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        let allowedCharacters = CharacterSet.decimalDigits
        let characterSet = CharacterSet(charactersIn: string)
        return allowedCharacters.isSuperset(of: characterSet)
    }
}

将文本字段的文本转换为 Int 并以这种方式进行比较。

if let text = insertNumberTextField.text, let value = Int(text), (0 ..< 100).contains(value) {
    // number is between 1 and 100
} else {
    // show alert
}