2016-12-11 13 views
-2

Мне нужно назначить значения ввода текста для созданной мной переменной и отправить ее на сервер. Я сделал все, кроме текстовых полей, поскольку разработка iOS для меня новая.Установить значения текстового поля в массив в Swift 3

Итак, мне нужно установить данные из текстового поля электронной почты в поле параметров и в поле пароля, чтобы я мог использовать эту переменную параметров в моем методе .post.

import Alamofire 
    import UIKit 

    class InitialViewController: UIViewController { 

let url = "https://api.sis.kemoke.net/auth/login" 
let parameters = ["email": "[email protected]", "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() 
} 

}

+0

Вы не дали почти достаточно информации. Единственный намек на текстовые поля заключается в том, что введенный вами код включал 2 вывода в текстовые поля. Это означает, что это те поля, у которых данные, которые вы хотите опубликовать. Однако вы не указали какую-либо информацию о том, как данные должны быть отформатированы и отправлены. Вы сказали что-то о назначении входных переменных «переменной, которую я создал», но вы не говорите, какая именно переменная. –

+0

Как написано, это очень плохой вопрос. Вы должны либо отредактировать его, чтобы предоставить четкое, полное описание проблемы, которую вы пытаетесь решить, либо удалить ее, поскольку она бессмысленна в текущей форме. –

+0

Взгляните на параметры переменной let среди первых строк. Он должен получать данные из двух текстовых полей. –

ответ

0

Во-первых, вы не можете изменить значение parameters, поскольку он объявлен в качестве константы (используя ключевое слово let). Если вы хотите изменить значения, вам нужно объявить его как переменную (используя ключевое слово var).

Во-вторых, вы не можете ожидать, что выходы автоматически изменят значения, зафиксированные внутри текстовых полей. Тем не менее, учитывая, что свойство textUITextField не является обязательным, вы можете сначала проверить его.

Это пример того, что вы пытаетесь достичь:

импорт Alamofire импорт UIKit

class InitialViewController: UIViewController { 

    let url = "https://api.sis.kemoke.net/auth/login" 
    var parameters = ["email": "[email protected]", "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!) 
     } 
    } 

}