无法使用类型的参数列表调用dataTaskWithRequest

时间:2015-05-07 14:22:53

标签: ios swift closures

我在iOS swift应用程序中遇到了一个奇怪的错误。编译器在第一行抱怨:

let task = session.dataTaskWithRequest(request) { data, response, error in
    self.oauthManager.customOAuth2Manager.parseData(data, response: response, error: error, body:request, callback: { (jsonArray, error) -> Void in
    })
}

编译错误是:

Cannot invoke 'dataTaskWithRequest' with an argument list of type '(NSURLRequest, (_, _, _) -> _)'

然而,错误似乎找不到那一行。如果我删除了对parseData的内部调用,则不会出现错误。

parseData的声明是:

func parseData(data: NSData, response:NSURLResponse, error:NSError?, body:String?, callback:JsonRequestCallback)

其中JsonRequestCallback是:

public typealias JsonRequestCallback = (jsonArray: NSArray?, error: NSError?) -> Void

另外:

let request = oauthManager.newLoginRequest(emailOrCompanyCode: emailOrCompanyCode, password: password) as NSURLRequest
let session = NSURLSession.sharedSession()

func newLoginRequest(var #emailOrCompanyCode: String, var password:String?) -> NSMutableURLRequest

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,Satachito是正确的。只是一个无效的参数。不幸的是,Swift编译器没有指定确切的错误,也没有指定正确的行。

因此,对于有类似问题的其他人,请在任何传递的闭包中查找所有代码中的错误