Я добавил «Панель поиска и контроллер отображения» в библиотеке объектов, и я добавил необходимые функции в свой контроллер tableviewcontroller. Tableviewcontroller работает правильно. Но когда я нажимаю на строку поиска, она дает эту ошибку.Swift & Parse: UISearchbar не работает
«Завершение приложения из-за неперехваченного исключения» NSInternalInconsistencyException », причина:« не удалось удалить ячейку с идентификатором mysharedCell - необходимо зарегистрировать ниб или класс для идентификатора или подключить прототип ячейки в раскадровке »
Я проверил идентификатор ячейки и никаких проблем с этим. Вот мой кодовая таблица вида:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("mysharedCell", forIndexPath: indexPath) as! MySharedTableViewCell
var object: PFObject = self.noteObjects.objectAtIndex(indexPath.row) as! PFObject
var likes:NSNumber = object["like"] as! NSNumber
cell.mySharedTitle?.text = object["title"] as? String
cell.mySharedText?.text = object["text"] as? String
if let x = object["date"] as? NSDate {
cell.mySharedDate?.text = getDateAsString(x)
}
else {
cell.mySharedDate?.text = "No date!"
}
cell.likesCount.text? = String("\(likes)")
return cell
}
А вот мои функции поиска:
func searchBarTextDidEndEditing(searchBar: UISearchBar) {
// Dismiss the keyboard
searchBar.resignFirstResponder()
// Force reload of table data
self.fetchAllObjects()
self.fetchAllObjectsFromLocalDatastore()
}
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
// Dismiss the keyboard
searchBar.resignFirstResponder()
// Force reload of table data
self.fetchAllObjects()
self.fetchAllObjectsFromLocalDatastore()
}
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
// Clear any search criteria
searchBar.text = ""
// Dismiss the keyboard
searchBar.resignFirstResponder()
// Force reload of table data
self.fetchAllObjects()
self.fetchAllObjectsFromLocalDatastore()
}
Я не вижу никаких проблем. Я правильно скопировал эти коды из других примеров проектов. Из-за этого мне что-то не хватает. Что не так с этим кодом?
является контроллер поиска отображения связан с делегатом? Также внутри класса вы вызываете UISearchBarDelegate , например. 'class TableviewController: PFQueryTableViewController, UISearchBarDelegate' – TomTom
Да, я назвал searchbar.delegate = self и uisearchbardelegate в viewdidappaer. – jorjj
Ну, у меня была одна и та же проблема, код, кажется, в порядке. Я решил это, перейдя в основную раскадровку и проверив выходы и ссылки на выходы, где все правильно, а не дубликаты и т. Д. Убедитесь, что делегат не ссылается на searchBar, просто на контроллер отображения поиска, поскольку это то, что покажет новый возвращенный табличный вид. – TomTom