Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
A validação de entrada é uma prática essencial no desenvolvimento de software para garantir que os dados fornecidos pelos usuários sejam corretos e seguros. No ambiente Apple, especificamente no desenvolvimento de aplicativos iOS, a validação de entrada pode ser realizada utilizando Swift, a linguagem de programação oficial da Apple. Este artigo técnico irá guiá-lo através do processo de implementação de validação de entrada em um aplicativo iOS.
Vamos começar com um exemplo básico de validação de um campo de texto para garantir que o usuário insira um endereço de e-mail válido.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var validationLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
validationLabel.isHidden = true
}
@IBAction func validateEmail(_ sender: UIButton) {
if let email = emailTextField.text {
if isValidEmail(email) {
validationLabel.text = "Email is valid"
validationLabel.textColor = .green
} else {
validationLabel.text = "Email is invalid"
validationLabel.textColor = .red
}
validationLabel.isHidden = false
}
}
func isValidEmail(_ email: String) -> Bool {
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Z]{2,64}"
let emailPredicate = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailPredicate.evaluate(with: email)
}
}
Neste exemplo, temos um UITextField
para a entrada do e-mail e um UILabel
para mostrar a mensagem de validação. A função isValidEmail
usa uma expressão regular para verificar se o e-mail está no formato correto.
Agora, vamos validar uma senha para garantir que ela tenha pelo menos 8 caracteres, incluindo letras maiúsculas, minúsculas, números e caracteres especiais.
import UIKit
class PasswordViewController: UIViewController {
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var validationLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
validationLabel.isHidden = true
}
@IBAction func validatePassword(_ sender: UIButton) {
if let password = passwordTextField.text {
if isValidPassword(password) {
validationLabel.text = "Password is valid"
validationLabel.textColor = .green
} else {
validationLabel.text = "Password is invalid"
validationLabel.textColor = .red
}
validationLabel.isHidden = false
}
}
func isValidPassword(_ password: String) -> Bool {
let passwordRegEx = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[#$^+=!*()@%&]).{8,}$"
let passwordPredicate = NSPredicate(format:"SELF MATCHES %@", passwordRegEx)
return passwordPredicate.evaluate(with: password)
}
}
Neste exemplo, a função isValidPassword
usa uma expressão regular para garantir que a senha atenda a todos os critérios de complexidade.
Por fim, vamos validar um número de telefone para garantir que ele siga um formato específico, como (123) 456-7890.
import UIKit
class PhoneViewController: UIViewController {
@IBOutlet weak var phoneTextField: UITextField!
@IBOutlet weak var validationLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
validationLabel.isHidden = true
}
@IBAction func validatePhone(_ sender: UIButton) {
if let phone = phoneTextField.text {
if isValidPhone(phone) {
validationLabel.text = "Phone number is valid"
validationLabel.textColor = .green
} else {
validationLabel.text = "Phone number is invalid"
validationLabel.textColor = .red
}
validationLabel.isHidden = false
}
}
func isValidPhone(_ phone: String) -> Bool {
let phoneRegEx = "^\\(\\d{3}\\) \\d{3}-\\d{4}$"
let phonePredicate = NSPredicate(format:"SELF MATCHES %@", phoneRegEx)
return phonePredicate.evaluate(with: phone)
}
}
Neste exemplo, a função isValidPhone
verifica se o número de telefone segue o formato (123) 456-7890.
A validação de entrada é uma parte crucial do desenvolvimento de aplicativos iOS para garantir a integridade e a segurança dos dados. Utilizando Swift e expressões regulares, é possível implementar validações robustas para diferentes tipos de entrada de usuário.