我从一个旧的教程swift2,Alamofire 3个工作,但我使用SWIFT 3,Alamofire 4参数类型NSURL不符合
我已经成功地改变了大多数的事情,但我遇到了一个问题。 使用此代码区域。
let url = NSURL(string: _pokemonUrl)!
Alamofire.request(url).responseJSON { response in
let result = response.result
我得到一个错误,指出:
Argument type NSURL does not conform to expected type URLRequestConvertible.
它确实给我,像添加的选项! (url)后的URLRequestConvertible,但在编译后,当我按下按钮以获取信息时,它会再次崩溃。它给出了一个错误:
Could not cast value of type 'NSURL' (0x117e99338) to 'Alamofire.URLRequestConvertible' (0x1189ab120).
如果我改变NSURL到URL,然后向前移动的代码,但是当它到达崩溃print语句,并给出了错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
这里下面的代码。
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,但我得到相同的错误。
任何人都可以为我解释这一点。
如果它有帮助我在下一个代码中打印后打印一个断点(“Here”),它给了我下面的错误。
let url = URL(string: _pokemonUrl)!
Alamofire.request(url).responseJSON { response in
let result = response.result
print(result.value.debugDescription)
print("Here")
错误出现:
Optional({ "error_message" = "Sorry, this request could not be processed. Please try again later."; }) Here
由于提前, 托尼
协议名称“URLRequestConvertible”意味着您需要*(NS)URL **请求***。 – vadian
Hi @vadian。当我更改为NSURLRequest时,它会要求我更改(字符串:_pokemonUrl)!到url:_pokemonUrl)!当我这样做给出了一个错误,无法将类型字符串_pokemonUrl转换为参数类型URL –
从该字符串中创建一个“(NS)URL”,并从该URL中创建一个“(NS)URLRequest”。请通过⌥-点击符号或使用代码完成来阅读所需类别或快速帮助的文档,以获取有关所需类型的建议。 – vadian