Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过带有JSON的UITableView的UISearchBar_Json_Swift_Uiviewcontroller_Uisearchbar - Fatal编程技术网

通过带有JSON的UITableView的UISearchBar

通过带有JSON的UITableView的UISearchBar,json,swift,uiviewcontroller,uisearchbar,Json,Swift,Uiviewcontroller,Uisearchbar,UISearchBar无法执行搜索,怎么了 我不需要关于使用json搜索的教程,但我的代码已经显示在表视图中,但无法搜索。我是iOS开发者世界的新手 import UIKit class updatedata: UIViewController,UITableViewDataSource, UISearchBarDelegate{ @IBOutlet weak var searchbarr: UISearchBar! private var actors : [listpeser

UISearchBar
无法执行搜索,怎么了

我不需要关于使用json搜索的教程,但我的代码已经显示在表视图中,但无法搜索。我是iOS开发者世界的新手

import UIKit

class updatedata: UIViewController,UITableViewDataSource, UISearchBarDelegate{

   @IBOutlet weak var searchbarr: UISearchBar!
   private var actors : [listpeserta]! = []
   private var realdata : [listpeserta]! = []
   var searching = false
   
   @IBOutlet weak var tableView: UITableView!
   override func viewDidLoad() {
       super.viewDidLoad()
       let url : URL = URL(string: "link")!
       var request : URLRequest = URLRequest (url: url)
       request.httpMethod = "GET"
       
       
       NSURLConnection.sendAsynchronousRequest(request, queue: .main) { (response, data, error) in
           guard let data = data else {
               print(error)
               return
           }
           let responseString : String! = String(data : data, encoding: .utf8)
           do {
               
               let jsonDecoder : JSONDecoder = JSONDecoder()
               self.actors = try jsonDecoder.decode([listpeserta].self, from: data)
               self.realdata = self.actors
               self.tableView.reloadData()
           }catch{print(error.localizedDescription)}
       }
   }
   func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
       if searching {return realdata.count}
       else
       { return actors.count}
   }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
       
       if searching {
       cell.textLabel?.text = realdata[indexPath.item].nama
       }else
       {cell.textLabel?.text = actors[indexPath.item].nama}
       
       return cell
    }
   
   
   func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
       realdata = actors.filter({$0.nama.prefix(searchText.count) == searchText.lowercased()})
       searching = true
       tableView.reloadData()
   }
   func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
       searching = false
       searchBar.text = ""
       tableView.reloadData()
   }
     
}
这是斯威夫特·列斯佩塞塔班

import Foundation

class listpeserta: Codable {
    public var nama : String!
}

你好像错过了搜索栏的代理。当需要将任务/职责分配给另一个对象时,请记住添加代理

例如,在viewDidLoad中:

searchbarr.delegate = self

p、 s.tableView.dataSource=self也丢失。

您是否设置了搜索栏的委托searchbarr.delegate=self?您的代码中没有找到,或者我忽略了它。您还说您的代码已经显示在表视图中,但我也找不到表视图。dataSource=self。这让我有点困惑。谢谢,searchbarr.delegate=self这是我很高兴能帮上忙,也许我应该把它作为一个答案发布。。。