iOS – Exception étrange

Je reçois une exception étrange dans Xcode 4.2.1 (projet ARC-enabled) que je ne peux pas traquer jusqu'à la racine du problème.

Voici à quoi ressemble l'exception:

2012-03-18 22:19:32.855 Project[14225:707] +[UIPickerTableViewTitledCell isEqualToSsortingng:]: unrecognized selector sent to class 0x3f2bbec4 2012-03-18 22:19:32.859 Project[14225:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[UIPickerTableViewTitledCell isEqualToSsortingng:]: unrecognized selector sent to class 0x3f2bbec4' 

Qu'est-ce qu'un UIPickerTableViewTitledCell? Je suppose que c'est une class interne pour l'UIPickerView à utiliser. Mais je ne fais reference à cette class nulle part dans mon projet.

Mon application est configurée comme une application de barre d'tabs avec un controller de navigation dans chaque onglet et cet onglet particulier a une vue de table et une sélection.

Il semble que vous ayez un object sur-libéré. Je comprends que dans le code pré-ARC, la libération est appelée une fois de trop. Le code ressemble à chercher NSSsortingng pour envoyer isEqualToSsortingng: à mais au lieu d'get le NSSsortingng qui a déjà été libéré, il obtient cette instance random de UIPickerTableViewTitledCell.

Je voudrais activer les zombies. Dans Xcode 4.2.1, vous pouvez le find dans le menu Product > Edit Scheme . Allez à l'onglet Diagnostics . Ensuite, il y a une Enable Zombie Objects cocher Enable Zombie Objects . Cela rendra votre object sur-libéré dans un Zombie, de sorte que vous pouvez déterminer exactement quel object provoque votre accident.

Je lirais la note technique TN2239: iOS Debugging Magic pour des informations plus détaillées à ce sujet. Tout le doc est génial, mais vous pouvez commencer par lire les sections intitulées "Zombies!" et "Plus de zombies!"