J'ai un TableView qui remplit les données extraites d'un NSFetchedResultsController. Toutefois, l'application cesse de répondre lorsque l'utilisateur défile trop rapidement dans la vue Tableau (généralement au bas de la Table).UITableView se bloque sur le défilement rapide
Xcode affiche un point d'arrêt dans le crash-
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
à la ligne où i assigne les attributs de la cellule:
cell.name.text = [Person Prénom: speaker.firstName andLastName: speaker.lastName]; (la cellule est une PersonStyleCell, sous-classe de UITableViewCell).
EDIT
Couchait avec la formation de failles de propriété de l'Etat du NSManagedObject, je reçois maintenant l'erreur:
CoreData could not fulfill a fault for '0x37f8f0
Encore une fois, l'application se bloque uniquement lorsque l'utilisateur fait défiler la uitableview trop vite.
Une idée de pourquoi l'application se bloque? Il n'y a pas de fuites de mémoire, et je ne libère que les objets NSFetchedResultsController dans la méthode dealloc. Quel pourrait être le problème?
je réalisais que:
([(Person*)[self.personArray objectAtIndex:[indexPath row]] faultingState] == 0)
vérifiera si les données stockées dans la NSManagedObject est la formation de failles (c.-à-n'est pas encore « chargé »), et je pense que le problème est qu'il essaie de mettre la cellule attributs avec des données qui ne sont pas encore accessibles. Placer les fonctions "set cell attributes" dans une instruction if qui ne fait que définir les attributs de la cellule si les données ne sont pas en cause semble corriger le crash, mais aucune donnée n'est affichée (je suppose que quand elle est initialisée, données pour tous les objets est défini comme « défaut »
Puis-je utiliser cette propriété d'état défaillant d'attendre que les données sont a chargé avant de les attributs de cellule? Si oui, comment
? Im espérant que ces informations J'ai considérablement simplifié ma question
Utilisez-vous des cellules? –
ouais, je crois que la cellule 'UITableViewCell * = [tableView dequeueReusableCellWithIdentifier: PlaceholderCellIdentifier]; 'prend soin de cela – ephilip
Obtenez-vous les données pour chaque personne dans le tableau Person de certaines API REST - c'est pourquoi il faut du temps pour revenir ? –