我正在使用旧的教程swift2,Alamofire 3,但我使用的是swift 3,Alamofire 4.
我已经成功改变了大部分事情,但我遇到了一个问题。 使用此代码区域。
let url = NSURL(string: _pokemonUrl)!
Alamofire.request(url).responseJSON { response in
let result = response.result
我收到的错误是:
参数类型NSURL不符合预期类型 URLRequestConvertible。
它确实给了我加入的选项!在(url)之后的URLRequestConvertible但是在编译之后它再次崩溃,当我按下按钮获取信息时。它给出了错误:
无法转换类型的值' NSURL' (0x117e99338)来 ' Alamofire.URLRequestConvertible' (0x1189ab120)。
如果我将NSURL更改为Url,那么它会在代码中向前移动,但是当它到达print语句时它会崩溃并给出错误:
致命错误:在解包可选值时意外发现nil
这是下面的代码。
let url = URL(string: _pokemonUrl)!
Alamofire.request(url).responseJSON { response in
let result = response.result
if let dict = result.value as? Dictionary<String, AnyObject> {
if let weight = dict["weight"] as? String {
self._weight = weight
}
if let height = dict["height"] as? String {
self._height = height
}
if let baseAttack = dict["attack"] as? Int {
self._baseAttack = "\(baseAttack)"
}
if let defense = dict["defense"] as? Int {
self._defense = "\(defense)"
}
print(self._weight)
print(self._height)
print(self._baseAttack)
print(self._defense)
我试图将所有内容更改为Int但我得到同样的错误。
任何人都可以为我阐明这一点。
如果它有助于我在下一个代码中打印出一个断点(&#34; Here&#34;),它会给我以下错误。
let url = URL(string: _pokemonUrl)!
Alamofire.request(url).responseJSON { response in
let result = response.result
print(result.value.debugDescription)
print("Here")
出现错误:
可选({ &#34; ERROR_MESSAGE&#34; =&#34;抱歉,无法处理此请求。请稍后再试。&#34 ;; }) 这里
提前致谢, 贝
答案 0 :(得分:0)
我试过下面的&amp;这有帮助
func downloadPokemonDetails(completed: DownloadComplete) {
let url = URL(string: _pokemonUrl)!
Alamofire.request(URLRequest(url: url)).responseJSON { response in
if let result = response.result.value as? [String: Any]{
print(result.debugDescription)
}
}
}
答案 1 :(得分:0)
你几乎做了这些人,只是失去了URL
的演员。
let nsurl = NSURL(string: _pokemonUrl)!
let request = URLRequest(url: nsurl as URL)
Alamofire.request(request).responseJSON { response in
let result = response.result
...
}