Swift - Alamofire 完成处理程序

Swift - Alamofire completionhandler

我正在使用 Alamofire 从网络检索数据 API:

func getData(completionHandler: (responseObject: NSDictionary?) -> ()) -> () {
    Alamofire.request(.GET, "http://example.com/api/resource/")
        .validate()
        .authenticate(user: user, password: password)
        .responseJSON { (request, response, responseObject) in

            switch responseObject {
                case .Success:
                    print("Validation Successful")
                    completionHandler(responseObject: responseObject as? NSDictionary)
                case .Failure(_, let error):
                    print(error)
            }

    }
}

override func viewDidLoad() {
    super.viewDidLoad()

    getData { (str, error) in
        if str != nil {
            print(str)
        } else {
            print(error)
        }
    }
}

当我运行代码时,报错,错误如下图

Command failed due to signal: Segmentation fault: 11

我不知道它出了什么问题以及如何解决它。 非常感谢任何建议。

曾经在使用 Alamofire 时遇到过类似的问题。我删除并重新导入了框架,然后它就起作用了。看起来编译器有一些问题。

无论如何也尝试Product > Clean你的项目。

如果它仍然不起作用,请尝试设置 breakpoints(或简单地注释)您的嵌套部分以找出失败的确切位置。

您打错了getData。当它只需要一个 responseObject.

时,您正在向完成处理程序传递两个参数 (str, error