请帮忙,我对 Swift 很陌生。如果我执行一次,来自搜索栏的 API 调用就可以正常工作。但是,当我清除搜索栏并重试时,出现以下错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
在这一行:
mutableURLRequest = NSMutableURLRequest(URL: NSURL(string: URLString.URLString)!)
这是我的代码。请帮忙:
// Functions for adding search
func createSearchBar() {
searchBar.placeholder = "Anchor Steam"
searchBar.delegate = self
// put into navigation bar
self.navigationItem.titleView = searchBar
}
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.resignFirstResponder()
makeAPICall(searchBar.text!)
}
func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
self.searchBar.showsCancelButton = true
}
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
searchBar.showsCancelButton = false
searchBar.text = ""
searchBar.resignFirstResponder()
self.searchResultTableView.reloadData()
}
func makeAPICall(beer: String) {
print("THE SEARCHED BEER IS \(beer)")
Alamofire.request(.GET, "https://api.untappd.com/v4/search/beer?q=\(beer)&client_id=AAA&client_secret=AAA").responseJSON { response in
if let json = response.result.value {
print ("Connection to API successful!")
if let secondJSON = json["response"] as! NSDictionary? {
if let beersJSON = secondJSON["beers"] as! NSDictionary? {
if let beerItems = beersJSON["items"] as! [NSDictionary]? {
var beersJsonArray: [NSDictionary] = []
for beerObject in beerItems {
let insideBeerHash = beerObject["beer"]
beersJsonArray.append(insideBeerHash as! NSDictionary)
}
self.beers = Beer.convertBeers((beersJsonArray as? [NSDictionary]!)!)
self.searchResultTableView.reloadData()
}
}
}
}
}
}
最佳答案
选项:
1) 确保定义URLString.URLString
2) 如果尝试使用:let url:
让 mutableURLRequest = NSMutableURLRequest(string: URLString.URLString)!
3)或者也许:
让 mutableURLRequest = NSURL(string: URLString.URLString)!
关于swift - Alamofire 抛出 fatal error : unexpectedly found nil while unwrapping an Optional value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40368064/