我通过codingforentrepreneurs.com研究如何制作iOS应用程序
现在我研究Alamofire。 Xcode是8.3.3
这是错误命令。我不理解错误命令。
无法转换类型'的值(NSURLRequest,HTTPURLResponse?, AnyObject?,NSError?) - >虚空'预期的参数类型 '(DataResponse) - >空隙'
这是ViewController.swift
import UIKit
import Alamofire
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var rTest = Alamofire.request("http://ec2-52-78-193-10.ap-northeast-2.compute.amazonaws.com", method: .get)
.responseJSON(completionHandler: isComplete)
}
func isComplete(request:NSURLRequest, response: HTTPURLResponse?, data: AnyObject?, error:NSError?) -> Void {
print(response!.statusCode)
print(data)
print(error)
print(request)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我不知道什么是问题。 你能救我吗?
答案 0 :(得分:0)
完成处理程序方法的签名应该是这样的。
func isComplete(response: DataResponse<Any>) {
let statusCode = response?.response?.statusCode
let result = response?.result
let request = response?.request
}
答案 1 :(得分:0)
在这种情况下,错误正确地描述了问题。
您传入的完成处理程序的类型为(NSURLRequest, HTTPURLResponse?, AnyObject?, NSError?) -> Void
,但这不是Alamofire完成处理程序的正确类型。正确的类型是(DataResponse) -> Void
这意味着您需要将isComplete
方法更改为:
func isComplete(dataResponse: DataResponse<Any>) -> Void {
print(dataResponse)
}