1
我想創建一個使用Swift的iOS應用程序,並且需要使用UISearchbar實現搜索功能。它接收一個商店名稱並在數據庫中搜索它以返回商店名稱數組。下面是給我一些錯誤的代碼段。我跟着這個網站密切http://swiftdeveloperblog.com/case-insensitive-search-with-swift-php-and-mysql/searchBar.resignFirstResponder()導致零值
func searchBarSearchButtonClicked(_ searchBar: UISearchBar)
{
if(searchBar.text!.isEmpty)
{
return
}
doSearch(searchWord: searchBar.text!)
}
func doSearch(searchWord: String){
mysearchBar.resignFirstResponder()
let myURL = NSURL(string: "http://localhost:8080/searchStore.php")
var request = URLRequest(url:myURL! as URL)
request.httpMethod = "POST"
let postString = "name=\(searchWord)"
request.httpBody = postString.data(using: String.Encoding.utf8)
let task = URLSession.shared.dataTask(with: request, completionHandler:{ (data: Data?, response: URLResponse!, error: Error!) -> Void in
DispatchQueue.main.async() {
if error != nil{
self.displayAlertMessage(userMessage: error.localizedDescription)
return
}
do{
var _: Error?
//STOPPED HERE AS OF NOW
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
self.results.removeAll(keepingCapacity: false)
self.tableView.reloadData()
if let parseJSON = json{
if let stores = parseJSON["stores"] as? [AnyObject]{
for storeOjb in stores{
let name = (storeOjb["name"] as! String)
self.results.append(name)
}
self.tableView.reloadData()
}else if(parseJSON["message"] != nil){
let errorMessage = parseJSON["message"] as? String
if(errorMessage != nil){
self.displayAlertMessage(userMessage: errorMessage!)
}
}
}
} catch {
print(error)
}
}
})
task.resume()
}
我得到2個錯誤,第一個是由於mysearchBar.resignFirstResponder()。該應用程序終止,我不斷收到
"fatal error: unexpectedly found nil while unwrapping an Optional value"
第二個錯誤是,當我刪除mysearchBar.resignFirstResponder()我得到
Error Domain=NSCocoaErrorDomain Code=3840 "No value." UserInfo=
{NSDebugDescription=No value.}
更新: 我輸入這行固定第二個問題
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
但是,似乎我的postString變量正面臨一個問題
看來mysearchBar是零。 –
將func doSearch(searchWord:String)的另一個參數傳遞給func doSearch(searchWord:String,searchbar:UIsearchbar),然後在您的其他函數中搜索search searchbar(searchWord:searchBar.text!,searchbar:searchbar) – Mack
您!這解決了第一個問題。但是,現在我面臨着我的postString的另一個問題。 –