2010-10-18 9 views
3

J'ai ce bug super bizarre dans mon projet actuel. Pour comprendre ce qui se passe, je PRECISEE tout à l'application plus simple, qui peut être téléchargé ici:iPhone UITableView bug ??? - sectionIndexTitlesForTableView semble le provoquer?

download simple example here (pas autoreleasing du tableau d'index mentionné ici)

Il semble que la méthode: sectionIndexTitlesForTableView a quelque chose à faire avec car le bug n'apparaît pas quand il n'est pas implémenté. Super chose étrange cependant: Quand il se coince et vous secouer l'appareil, il répond à nouveau. Si vous avez téléchargé le code ci-dessus, dans l'application, vous devez appuyer sur le bouton, défiler vers le bas revenir en arrière alors qu'il continue à défiler et appuyez à nouveau et il va certainement planter après quelques fois. Si ce n'est pas juste de le redémarrer et essayez à nouveau. Il va planter finalement.

Répondre

0

Il s'est avéré que c'est un bug iOS. Je ne l'ai pas encore déposé. Mais je vais mettre à jour ce post dès que j'ai.

0

Lorsque vous popping le contrôleur tableview vous Décharger les délégués qui peuvent être attachés à c'est viewController? `Je l'ai trouvé que ce soit la cause de certains effets « intéressants » dans le passé avec divers composants d'iOS

+0

Dans la méthode dealloc, j'ai défini la source de données et le délégué de la tableview à 0 ... – jagse

0

Pouvez-vous obtenir ce résultat lorsque vous déboguez l'application sur votre appareil dans Xcode? Si c'est le cas, une fois qu'il est accroché, cliquez sur le bouton Pause dans Xcode. Cela va casser le débogueur dans votre processus en cours d'exécution. Ensuite, vous pouvez examiner chaque thread dans la zone Threads du débogueur pour voir où se trouve l'appel. Cela vous montrera où votre code est accroché.

+0

Oui, je peux le faire. Et j'ai essayé. Mais je n'ai aucune idée de ce que cela me dit car je ne sais pas grand-chose sur ce qui se passe dans les coulisses de l'objectif c. Mais j'ai vraiment réduit mon code à l'application la plus simple (même beaucoup plus simple que l'exemple de code fourni ci-dessus) et je reçois toujours l'erreur. Je n'ai aucune idée de ce qui pourrait éventuellement être faux. Si c'est un bug de la pomme, ce serait vraiment terrible. – jagse

+0

Ok, pourriez-vous copier la callstack de Xcode et le coller dans la description de votre question? Cela nous aiderait à vous aider à le diagnostiquer. – Ryan

+0

Ok. J'ai téléchargé quelques captures d'écran. Je ne sais pas exactement de quoi nous avons besoin. Mais devrait faire un point de départ, espérons. – jagse

0

Vos "index NSMutableArray *" sont automatiquement référencés et non conservés par UITableView. Je suggère d'essayer de créer le tableau pendant init de l'UITaleView et de le libérer sur dealloc de l'UITableView ou, s'il doit être dynamique, de le libérer et de le recréer chaque fois que sectionIndexTitlesForTableView est appelée. De cette façon, vous savez qu'il restera aussi longtemps que UITableView essayera d'accéder au pointeur retourné par cette méthode.

+0

Hey merci de vérifier le code. Mais ce n'est pas ça. Je vais télécharger une autre version où elle n'est pas autoeleased. Même bug Vous pouvez l'essayer vous-même. À votre santé – jagse