在我以前的项目中,使用较旧版本的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))'
这是一个奇怪的情况。但是,我设法确定的是,如果我打电话
JSON(value)
此操作失败,并出现无法调用类型(Any)类型的构造函数的错误。
但是,当我明确命名模块如下时:
let json = SwiftyJSON.JSON(value)
Xcode不再抱怨该错误。
确实很奇怪。我确实回过头来,并在尝试使用JSON()而不使用模块命名的情况下检查了SwiftyJSON-只是为了验证是否存在某种与其他名称冲突的方法-并且确实如此。所以我不完全确定为什么这样做,但是希望它可以帮助其他人。如果我做错了什么,或者有人可以给我一个更好的答案。