Ich habe folgenden Code. Ich habe eine TableViewController und ganz oben habe ich einen SearchDisplayController eingebaut, jetzt will ich das wenn ich in die Suchleiste klicke und was eingebe mir die richtigen Ergebnisse geliefert werden, ich kann auch schon auf die Suchleiste klicken, aber sobald ich einen Buchstaben eingebe stürzt die app mit folgender Fehlermeldung ab:
Assertion failure in -[UISearchResultsTableView dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-3347.44.2/UITableView.m:6245
2015-08-14 08:19:25.201 Cityboom[1040:17854] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier myCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
Ich hab aber keine Ahnung warum, myCell heißt einfach der identifier von meiner TableViewCell in der Tabelle, was kann da falsch sein?
Da komische auch daran, wenn ich unten in der SearchBar function nach dem filteredDaten.append ein println(filteredDaten) mache dann kommen auch die suchergebnisse in der Console raus, aber die app stürzt halt sofort ab sobald ich was eingebe und somit werden in der tableview auch keine Ergebnisse angezeigt.
Alles anzeigen
Assertion failure in -[UISearchResultsTableView dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-3347.44.2/UITableView.m:6245
2015-08-14 08:19:25.201 Cityboom[1040:17854] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier myCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
Ich hab aber keine Ahnung warum, myCell heißt einfach der identifier von meiner TableViewCell in der Tabelle, was kann da falsch sein?
Da komische auch daran, wenn ich unten in der SearchBar function nach dem filteredDaten.append ein println(filteredDaten) mache dann kommen auch die suchergebnisse in der Console raus, aber die app stürzt halt sofort ab sobald ich was eingebe und somit werden in der tableview auch keine Ergebnisse angezeigt.
Quellcode
- override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
- if tableView == searchDisplayController?.searchResultsTableView {
- return "Ergebnisse"
- }
- return daten[section][0]["telefon"]
- }
- override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
- if tableView == searchDisplayController?.searchResultsTableView {
- return 1
- }
- return daten.count
- }
- override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- if tableView == searchDisplayController?.searchResultsTableView {
- return filteredDaten.count
- }
- return daten[section].count
- }
- override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
- let myCell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as! UITableViewCell
- if tableView == self.searchDisplayController!.active {
- myCell.textLabel?.text = generateTextFrom(dictionary: filteredDaten[indexPath.row])
- }
- myCell.textLabel?.text = generateTextFrom(dictionary: daten[indexPath.section][indexPath.row])
- return myCell
- }
- func generateTextFrom(#dictionary: [String:String]) -> String{
- let name = dictionary["name"]!
- return "\(name)"
- }
- func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
- filteredDaten.removeAll(keepCapacity: true)
- for arr in daten {
- for dic in arr {
- if (dic["name"]!.lowercaseString as NSString).rangeOfString(searchText).length != 0 {
- filteredDaten.append(dic)
- }
- }
- }
- }