尝试在swift 2.0中执行GET请求时出错

所以我试图在Swift 2.0中执行一个GET请求,并从我的Swift 1.2迁移了几行代码后,我得到这个错误,我不是真正理解如何绕过它/正确地迁移它。

该函数的写法如下:

func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) { let request = NSMutableURLRequest(URL: targetURL) request.HTTPMethod = "GET" let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration() let session = NSURLSession(configuration: sessionConfiguration) let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in dispatch_async(dispatch_get_main_queue(), { () -> Void in completion(data: data, HTTPStatusCode: (response as! NSHTTPURLResponse).statusCode, error: error) }) }) task.resume() } 

在此之后,Xcode输出我以下错误:

无法用types为'(NSMutableURLRequest,completionHandler:(NSData!,NSURLResponse!,NSError!) – > Void)'的参数列表调用'dataTaskWithRequest''

你有没有遇到过这个问题,或者知道如何解决?

这个代码应该工作。 使用Swift,你需要让它决定什么types的variables是尽可能多的。 注意我拿出你的演员。

  func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) { let request = NSMutableURLRequest(URL: targetURL) request.HTTPMethod = "GET" let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration() let session = NSURLSession(configuration: sessionConfiguration) let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in dispatch_async(dispatch_get_main_queue(), { () -> Void in completion(data: data, HTTPStatusCode: (response as! NSHTTPURLResponse).statusCode, error: error) }) }) task.resume() }