ViewController.swift无法调用' responseJSON'使用参数列表类型'((_,_,_,_) - > _)'

时间:2015-07-16 20:13:04

标签: ios swift alamofire

我的ViewController.swift中有以下代码:

func OpenBarrier(){

    let parameters = [
        "username": keyStore?.stringForKey("loginUsername"),
        "password": keyStore?.stringForKey("loginPassword"),
        "api_key" : API.api_key
    ]


    Alamofire.request(.GET, "\(API.baseurl)/slagboom/open.json" , parameters: parameters)
        .responseJSON() { 
             (_, _, JSON, _) in

        println("JSON: \(JSON)")  
        }
}

我收到此错误:

ViewController.swift:174:14: Cannot invoke 'responseJSON' with an argument list of type '((_, _, _, _) -> _)'

2 个答案:

答案 0 :(得分:0)

您的parameters参数应该是[String: AnyObject]?而不是[String : AnyObject?]

修复此错误,您应该可以再次编译。

确保您的参数变量存在。如果没有,编译器会感到困惑,错误实际上并不是由于Alamofire。我希望这能帮到你。

答案 1 :(得分:0)

我找到了它:)

//the parameters list was wrong

let parameters = [
    "username": keyStore?.stringForKey("loginUsername"),
    "password": keyStore?.stringForKey("loginPassword"),
    "api_key" : API.api_key
]

//when i cahnged it to the following it works, now to get around the keystore?

let parameters = [
    "username": "loginUsername",
    "password": "loginPassword",
    "api_key" : API.api_key
]