Xcode permet de (dé)vérifier les paramètres spécifiques des avertissements du compilateur qui peut vous avertir de certains types de code inutilisé. (Sélectionnez le projet dans la liste source et Fichier > lire les informations, puis sélectionnez l'onglet créer.) Voici quelques-uns (qui pour Clang et GCC 4.2 pour moi) qui peut être intéressant:
- Des Fonctions Inutilisées
- Les Paramètres Inutilisés
- Valeurs Inutilisées
Je ne vois pas d'options pour la détection de inutilisés des importations, mais qui est un peu plus simple - le low-tech approche est juste pour commenter les instructions d'importation jusqu'à ce que vous obtenez une erreur de compilation et de mise en garde.
Inutilisés Objective-C méthodes sont beaucoup plus difficiles à détecter que inutilisés fonctions C parce que les messages sont envoyés de façon dynamique. Un avertissement ou une erreur peut vous dire que vous avez un problème potentiel, mais l'absence de l'un ne vous garantit pas de ne pas avoir des erreurs d'exécution.
Edit: un Autre bon moyen de détecter (potentiellement) inutilisé méthodes est d'examiner la couverture de code à partir de véritables exécutions. Ceci est habituellement fait en tandem avec des tests unitaires automatisés, mais n'a pas à être.
Ce blog est un décent introduction aux tests unitaires et de couverture de code à l'aide de Xcode. La section sur l' gcov
(qui ne fonctionne qu'avec le code généré par GCC, par la voie) explique comment obtenir Xcode pour construire d'instrumentation de code qui permet d'enregistrer combien de fois il a été exécuté. Si vous prenez un instrumenté version de votre application pour un tour dans le simulateur, puis exécutez gcov, vous pouvez voir ce code a été exécuté à l'aide d'un outil comme CoverStory (assez simpliste GUI) ou lcov
(scripts Perl pour créer des rapports HTML).
J'utilise gcov
et lcov
pour CHDataStructures.cadre et de générer automatiquement des rapports de couverture après chaque SVN commit. Encore une fois, rappelez-vous qu'il est judicieux de traiter exécuté couverture comme une mesure définitive de ce code est "mort", mais il peut certainement aider à identifier les méthodes que vous pouvez étudier plus loin.
Enfin, puisque vous essayez de supprimer du code mort, je pense que vous trouverez ce DONC, la question intéressante: