我是 Swift 和 iOS 的新手,为了考试,我正在开发一个小的 iOS 应用程序。首先要做的是登录:在我的 View Controller 中,我有 2 个文本字段(登录名、密码)和一个“登录”按钮。我创建了一个带有属性的快速用户类(根据存储在数据库中的字段)。然后我创建了一个登录服务 swift 类,其中(按照 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
现在我想试试这个东西,所以在我的 View Controller swift 文件中,我将按钮链接到以下方法:
@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)
})
关于php - Swift:如何查询外部数据库执行登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205126/