2010-07-13 5 views
0

J'ai une vue tabulaire avec une barre de recherche en haut de la page. Lorsque je fais défiler à travers la table, puis appuyez sur la barre de recherche, tandis que la table défile encore je reçois unLa vue du tableau se bloque avec 'NSRangeException'

* Mettre fin application en raison d'une exception non interceptée « NSRangeException », raison: « * - [NSCFArray objectAtIndex:] : index (37) beyond bounds (0) '

Je suis un peu perdu sur ce que le problème est ici. Je pense que les méthodes déléguées pour la vue table ne sont pas complètement exécutées avant d'appeler les méthodes de délégation de la barre de recherche.

Toute aide serait grandement appréciée.

Merci.

Répondre

3

Utilisez-vous des threads? Les méthodes de la barre de recherche et du délégué tableau doivent être sur le thread principal et, par conséquent, il n'y a aucun moyen d'interrompre l'autre. Cependant, les événements peuvent être gérés pendant le défilement. Si votre recherche efface l'affichage de la table pendant le défilement, cela peut poser un problème.

+0

- (void) searchBarTextDidBeginEditing: (UISearchBar *) {SearchBar \t \t sBar.showsCancelButton = OUI; \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t // afficher uniquement le bouton de la barre d'état annuler en mode d'édition \t sBar.autocorrectionType = UITextAutocorrectionTypeNo; \t \t [self.tableData removeAllObjects]; \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t // flush la recherche précédente contenu } droite j'effacer la vue de la table lorsque la barre de recherche est pressée. J'ai commenté la ligne où je nettoyais la table et cela a résolu le problème. Merci beaucoup de me l'avoir fait remarquer. – Toret

+0

n'oubliez pas d'accepter la réponse toret –

+0

Merci :) J'ai essayé mais il m'a dit que j'ai dû attendre 2 minutes. Je l'ai vérifié maintenant merci – Toret

Questions connexes