Necesito asignar los valores de entrada de texto a la variable que creé y luego enviarla al servidor. Hice todo menos los campos de texto, ya que el desarrollo de iOS es nuevo para mí.

Por lo tanto, también necesito configurar los datos del campo de texto del correo electrónico en la variable de parámetros y el campo de contraseña para poder usar esa variable de parámetros en mi método .post.

   import Alamofire
   import UIKit

   class InitialViewController: UIViewController {

let url = "https://api.sis.kemoke.net/auth/login"
let parameters = ["email": "example@example.com", "password": "examplePassword"]

// Parameters textfields
@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!

// A method for the login button
@IBAction func loginButton(_ sender: UIButton) {
    Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.httpBody, headers: nil).responseJSON {
        (response) in
        print(response.result.value!)
    }
}

override func viewDidLoad() {
    super.viewDidLoad()
}

}

-2
Adin Cebic 12 dic. 2016 a las 00:49
No ha proporcionado suficiente información. La única pista sobre los campos de texto es que el código que publicó incluía 2 salidas a los campos de texto. Eso implica que esos son los campos cuyos datos necesitas publicar. Sin embargo, no ha proporcionado ninguna información sobre cómo se supone que deben formatearse y enviarse los datos. Dijiste algo sobre la asignación de variables de entrada "a la variable que creé", pero no dijiste qué variable es esa.
 – 
Duncan C
12 dic. 2016 a las 00:53
Como está escrito, esta es una pregunta SO realmente mala. Debe editarlo para proporcionar una descripción clara y completa del problema que está tratando de resolver, o eliminarlo, ya que no tiene sentido en su forma actual.
 – 
Duncan C
12 dic. 2016 a las 00:53
Eche un vistazo a los parámetros de la variable let entre las primeras líneas. Necesita recibir datos de dos campos de texto.
 – 
Adin Cebic
12 dic. 2016 a las 00:55
En que formato
 – 
Duncan C
12 dic. 2016 a las 00:59
Ok, edité la pregunta. Debe ser una cadena y debe mantener los parámetros de "correo electrónico" y "contraseña". Lo único que debería modificar el campo de texto es el correo electrónico de ejemplo y la contraseña de ejemplo.
 – 
Adin Cebic
12 dic. 2016 a las 01:02

1 respuesta

La mejor respuesta

En primer lugar, no puede modificar el valor de parameters ya que se declara como una constante (utilizando la palabra clave let). Si desea modificar los valores, deberá declararlo como una variable (usando la palabra clave var).

En segundo lugar, no puede esperar que los puntos de venta cambien automáticamente los valores capturados dentro de los campos de texto. Dicho esto, considerando que la propiedad text de UITextField es opcional, es posible que desee validar el contenido primero.

Este es un ejemplo de lo que está tratando de lograr:

Importar Alamofire importar UIKit

class InitialViewController: UIViewController {

    let url = "https://api.sis.kemoke.net/auth/login"
    var parameters = ["email": "example@example.com", "password": "examplePassword"]

    // Parameters textfields
    @IBOutlet weak var email: UITextField!
    @IBOutlet weak var password: UITextField!

    // A method for the login button
    @IBAction func loginButton(_ sender: UIButton) {
        parameters["email"] = email.text ?? ""
        parameters["password"] = password.text ?? ""
        Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.httpBody, headers: nil).responseJSON {
            (response) in
            print(response.result.value!)
        }
    }

}
0
bsarrazin 12 dic. 2016 a las 01:03