Cómo validar dinámicamente los valores de campo en una aplicación de iOS

Primero, para ser claros, a diferencia de una aplicación web, la validación no tiene que suceder dos veces (lado del cliente, luego del lado del servidor). Puede codificar (y sí, siempre hay excepciones) con la expectativa de que un usuario solo podrá ingresar lo que los controles le dan.

Entonces, para responder a su pregunta, valide los campos utilizando métodos delegados proporcionados por el control. Tome UITextField, puede notificarle sobre cambios en tiempo real a través de sus métodos delegados (o notificaciones).

Tome este fragmento, que solo permite que una entrada numérica de estilo de banco se complete desde la derecha y también tiene un límite de caracteres predeterminado de 40 caracteres para cualquier otro campo de texto que use la clase como delegado:

deje AMOUNT_MAX = 10_000_000
dejar DEFAULT_CHARACTER_LIMIT = 40
cantidad var = 0.0
func textField (_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replaceString string: String) -> Bool {
let count = textField.text? .characters.count ?? 0 0
let char = string.cString (usando: .utf8)
let isBackspace = strcmp (char, “\\ b”) == -92
switch (textField) {
cantidad del casoTextField:
si se deja convertidoString = Doble (cadena) {
cantidad * = 10
cantidad + = convertString / 100
} más {
if (isBackspace) {
cantidad / = 10
cantidad = piso (cantidad * 100) / 100
}
}
if (cantidad <AMOUNT_MAX) {
let formatter = NumberFormatter ()
formatter.numberStyle = .currency
formatter.maximumFractionDigits = 2
formatter.locale = Locale (identificador: Locale.current.identifier)
textField.text = formatter.string (de: cantidad como NSNumber)
}
falso retorno
defecto:
if (isBackspace) {
volver verdadero
} más {
return (cuenta <= DEFAULT_CHARACTER_LIMIT)
}
}
}

Si desea implementar una forma más segregada y estándar, teniendo en cuenta que tiene muchos campos de texto para rellenar formularios, eche un vistazo a la siguiente biblioteca. Es bueno.

SwiftValidatorCommunity / SwiftValidator

More Interesting

¿Cuáles son las mejores empresas de desarrollo de aplicaciones para iPhone basadas en precio y calidad?

Si uno desarrolla una aplicación para iPhone en Hackintosh en lugar de en una Mac, ¿la aplicación se considerará legal o fraudulenta?

¿Alguien puede ayudarme a encontrar un buen tutorial sobre conceptos básicos de la programación Swift para desarrollar aplicaciones iOS?

Cómo pasar de un controlador de vista a otro controlador de vista usando el código al presionar un botón

¿Cómo funcionan técnicamente Meerkat y Periscope?

¿Cuál es la mejor aplicación de kit de inicio de Android e iOS?

¿Qué se necesita para crear y lanzar una aplicación para iPhone?

¿Está lista tu aplicación Marshmallow y 3D Touch?

Si tuviera que construir un dispositivo BLE que detectara la proximidad de un teléfono inteligente, ¿podría este dispositivo BLE configurarse para activar la aplicación descargada solo a una proximidad extremadamente cercana (por ejemplo, <2 pulgadas)?

¿Vale la pena crear aplicaciones gratuitas para iOS, o estoy mejor trabajando con Android?

¿Cómo funciona la nueva función de monitoreo de región de iOS 5 para los desarrolladores?

¿Cuánto ganan los desarrolladores independientes y las empresas de desarrollo de aplicaciones por una sola aplicación de Android o iOS?

¿Puedo actualizar la marca de tiempo de una notificación local en iOS cuando el usuario inicia la aplicación?

¿Es posible configurar una instancia única del servidor Jenkins para CI de aplicaciones iOS y aplicaciones Android?

Cómo automatizar la aplicación iOS con XCUITest