我在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
有什么想法吗?
答案 0 :(得分:0)
回答我自己的问题,Satachito是正确的。只是一个无效的参数。不幸的是,Swift编译器没有指定确切的错误,也没有指定正确的行。
因此,对于有类似问题的其他人,请在任何传递的闭包中查找所有代码中的错误