我從一箇舊的教程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