无法使用类型为(((Any))'”的参数列表调用'JSON'-使用AlamoFire和SwiftyJSON

问题描述 投票:0回答:1

在我以前的项目中,使用较旧版本的Alamofire和SwiftyJSON,使用JSON(response.result.value)的效果很好。我尝试在新项目中实现代码,但是遇到了一些以前从未见过的错误。我确实在此处看到一些有关此问题的问题,但没有一个解决方案似乎可以解决我的问题(除非我错过了什么)。

AF.request(self.apiEndpoint,
             method: .get,
             parameters: self.parameters,
             headers: self.headers,
             interceptor: nil).validate().responseJSON { (response) in

                switch response.result {
                case .success(let value):
                  let json = JSON(value)
                  print(json)
                case .failure(_):
                  print(response)
                }
}

这将返回以下错误:

Cannot invoke 'JSON' with an argument list of type '((Any))'
swift alamofire swifty-json
1个回答
0
投票

这是一个奇怪的情况。但是,我设法确定的是,如果我打电话

JSON(value)

此操作失败,并出现无法调用类型(Any)类型的构造函数的错误。

但是,当我明确命名模块如下时:

let json = SwiftyJSON.JSON(value)

Xcode不再抱怨该错误。

确实很奇怪。我确实回过头来,并在尝试使用JSON()而不使用模块命名的情况下检查了SwiftyJSON-只是为了验证是否存在某种与其他名称冲突的方法-并且确实如此。所以我不完全确定为什么这样做,但是希望它可以帮助其他人。如果我做错了什么,或者有人可以给我一个更好的答案。

© www.soinside.com 2019 - 2024. All rights reserved.