我真的非常努力,但我无法理解。 我在TableView中实现了一个搜索栏,当我搜索某些方法时,这些方法在后台运行,但在用户界面中没有任何反应,直到我点击取消按钮。点击此按钮后,所有内容都按照我想要的方式运行。
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
performSearchWithText(searchText: searchBar.text!)
}
private func performSearchWithText(searchText: String) {
self.photos = []
FlickrBrain.fetchPhotosForSearchText(searchText: searchText, onCompletion: {
(error: NSError?,flickrPhotoIds:[String]?)-> Void in
if error == nil {
self.photoIds = flickrPhotoIds!
DispatchQueue.main.async(execute: { () -> Void in
self.title = searchText
self.tableView.reloadData()
})
}else {
self.photoIds = []
if (error!.code == FlickrBrain.Errors.invalidAccessErrorCode) {
DispatchQueue.main.async(execute: { () -> Void in
self.showErrorAlert()
})
}
}
})
}
如果有人可以帮助我,我会节省很多时间,我尽我所能