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!"