警报控制消息和NSURLSession

时间:2016-07-16 14:54:58

标签: swift delegates nsurlsession

我是这里的新人,但过去常常在这里搜索具体的东西,因为我找不到具体的答案,也许这里有人可以提供帮助。

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

目前我已经建立了登录,注册视图控制器等。  使用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
}

这给了我这个问题

  在iOS 9.0中不推荐使用

sendSynchronousRequest(_:returningResponse :)':使用[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文件。

1 个答案:

答案 0 :(得分:0)

不是使用同步请求,而是创建异步请求,并在完成处理程序块中,将当前在catch块结束之后的所有代码放在上面,以便在请求完成后执行它。

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