Mam NSFetchedResultController
z inną sekcją. mam awarię gdy próbuję wyszukiwać za pomocą UISearchDisplayController
:Awaria podczas wyszukiwania w dwóch sekcjach
*** Assertion failure in -[UITableViewRowData rectForRow:inSection:], /SourceCache/UIKit/UIKit-2372/UITableViewRowData.m:1630
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for rect at invalid index path (<NSIndexPath 0x1d2c4120> 2 indexes [0, 1])'
sprawdziłem i moje wyszukiwanie tablica ma rzeczywiście dwie pozycje (oczekiwany wynik):
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
It zwraca 1
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
To zwraca 2
Zabawne, jeśli mam tylko jedną sekcję, działa idealnie.
Pomoc, proszę! :)
Czy mógłbyś wyjaśnić przyczynę tego? Zastanawiam się, bo może mi to pomóc w rozwiązaniu kolejnego problemu w przyszłości. – Jeremy1026
Dzieje się tak, ponieważ pytasz self.tableView o komórkę. Ale indexPath, podczas wyszukiwania, jest ścieżką indeksu do tabeli wyszukiwania. Ścieżka indeksu nie musi być poprawna dla self.table, więc nie można do niej przekazać ścieżki indeksu. self.table musi zostać poproszony o komórkę, ponieważ CellIdentifier nie został zarejestrowany w tabeli wyszukiwania. –
I tak, to wciąż głupia magia, żeby wszystko działało! :) –