我是这个新手,但过去常常在这里搜索特定的内容,由于我找不到特定的答案,也许这里有人可以提供帮助。

我基本上是在学习和构建应用程序。

目前,我已经建立了登录,注册视图控制器等。
 使用php和mysql服务器。

由于即时消息正在使用并逐步占用堆栈溢出

我遇到了警报控制消息问题和NSURLConnection的问题

现在我知道NSURLConnection替换为NSURLSession
但是我无法实现它,很难解决这个问题。

我的代码如下:

let request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = postData
request.setValue(postLength as String, forHTTPHeaderField: "Content-Length")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")

var reponseError: NSError?
var response: NSURLResponse?

var urlData: NSData?
do {
    urlData = try NSURLConnection.sendSynchronousRequest(request, returningResponse:&response)
} catch let error as NSError {
    reponseError = error
    urlData = nil
}


这给了我这个问题


  sendSynchronousRequest(_:returningResponse :)在iOS 9.0中已弃用:使用[NSURLSession dataTaskWithRequest:completionHandler:](请参阅NSURLSession.h)


我如何实现此功能以与NSURLSession一起使用?

第二个问题是打开警报消息

alertView.delegate = self是问题,我已经尝试了几种不同的操作,例如替换了alertView,但是它不起作用,我尝试了alertController,等等。没有任何效果:

        if let error = reponseError {
            alertController.message = (error.localizedDescription)
        }

        alertView.delegate = self
        alertController.addAction(OKAction)
        self.presentViewController(alertController, animated: true) { }
    }
} catch {
    let alertController:UIAlertController = UIAlertController(title: "Sign up Failed", message: "Server Error", preferredStyle: .Alert)
    let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in }
    alertController.addAction(OKAction)
    self.presentViewController(alertController, animated: true) { }
}


问题是:


  使用未解决的标识符“ alertView”


这在一个名为signup.VC的Swift文件中。

最佳答案

不要使用同步请求,而是创建一个异步请求,然后在完成处理程序块中,将当前出现的所有代码放在catch块结束之后,使其在请求完成后执行。

我不知道您的第二个问题,因为您没有在声明alertView变量的位置包含代码。

关于swift - 警报控制消息和NSURLSession,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38412371/

10-09 16:15
查看更多