Я очень новичок в Swift и iOS, и для экзамена я разрабатываю небольшое приложение для iOS. Первое, что нужно сделать, это логин: на мой взгляд, у контроллера есть 2 текстовых поля (логин, пароль) и кнопка «Войти». Я создал быстрый пользовательский класс с атрибутами (в соответствии с полями, хранящимися в базе данных). Затем я создал класс быстрого доступа к службе входа, где (после учебника Youtube) есть два важных метода:
func getUser(username:String, password:String, callback:(NSDictionary) -> ()) { self.settings.webServerLoginURL = "\(self.settings.webServerLoginURL)?username=\(username)&password=\(password)" println(self.settings.webServerLoginURL) self.requestLogin(self.settings.webServerLoginURL, callback: callback) } func requestLogin(url:String, callback:(NSDictionary) -> ()) { var nsURL = NSURL(string: url) let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!) { (data, response, error) in var error:NSError? var response = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &error) as! NSDictionary callback(response) } task.resume() }
где URL-адрес должен быть примерно таким:
localhost:8888/excogitoweb/loginM.php?username=xxx&password=xxx
Теперь я хотел бы попробовать этот материал, и поэтому, по моему мнению, быстрый файл контроллера я связал кнопку со следующим методом:
@IBAction func doLogin(sender : AnyObject) { self.service = LoginService() self.service.getUser(self.userTextField.text, self.passwordTextField.text) }
То, что я не понимаю, заключается в том, как вызвать эту функцию, третьим аргументом которой является обратный вызов, и в целом, как управлять данными ответа, чтобы проверить, исправляется ли логин: если так PHP-файл должен возвращать (после запроса базы данных) информация с
echo json_encode()
и поэтому я должен контролировать, если возвращаемые данные пусты или нет. Можете ли вы помочь мне, пожалуйста, или ссылку на более удобный учебник?
Для обратного вызова позвольте Xcode помочь вам с его функцией автозаполнения.
Начните вводить вызов метода:
self.requestLogin
и принять автозаполнение.
Теперь вы видите, что Xcode выделил часть обратного вызова; щелкните один раз на нем, чтобы выбрать его, затем нажмите ENTER, Xcode автоматически отформатирует вызов следующим образом:
self.requestLogin(self.settings.webServerLoginURL, { (myDictionary) -> () in println(myDictionary) })