Tengo curiosidad por si hay alguna herramienta que proporcione soluciones parciales para esto. Es un problema complicado debido a performSelector. . . pero una herramienta debería al menos ser capaz de proponer candidatos, facilitando el trabajo del humano.Xcode - encontrar métodos muertos en un proyecto
Respuesta
Usando el análisis estático, es imposible detectar funciones/métodos que están definidos pero no se usan debido a la naturaleza dinámica de Objective-C. La única solución razonable es ejecutar una cobertura usando GCov
o una herramienta similar. Incluso entonces, tendrá que hacer que su programa haga todo lo posible para asegurarse de no eliminar alguna característica que simplemente no se usó durante las pruebas.
Además, this script tiene algunas ideas interesantes sobre esto.
Teniendo en cuenta los métodos muy detallados pero descriptivos que a menudo se eligen en los programas de Objective-C, creo que basta con hacer una búsqueda textual en el proyecto. Usualmente solo usaré la primera parte del nombre de un método para evitar tener que hacer coincidir los argumentos del método. Esto coincidirá con las llamadas a métodos normales y el uso de @selector
y NSSelectorFromString
.
Por supuesto, esto no funcionará para nombres de métodos muy comunes o si necesita el resto del nombre del método para eliminar la ambigüedad entre muchos métodos similares, pero creo que es una ocurrencia rara.
Sí, un hallazgo textual a menudo es genial. Me encantaría encontrar los métodos que no se llaman explícitamente. No sería difícil clasificar a los pocos que reciben llamadas de otras maneras. –
- 1. Algoritmo para encontrar píxeles muertos en Javascript
- 2. Duplicar un proyecto XCode 4
- 3. ios notificaciones a objetos "muertos"
- 4. xCode/declarar métodos estáticos en la clase
- 5. Importar proyecto XCode dentro de otro proyecto XCode
- 6. Xcode 4 agregar imágenes a un proyecto
- 7. proyecto depende en Xcode 4
- 8. Pruebas unitarias de métodos privados en Xcode
- 9. ¿Cómo configuro un proyecto de C++ en Xcode 4?
- 10. Xcode cómo agregar un proyecto externo
- 11. Xcode no se abre un proyecto normalmente
- 12. Proyecto de Xcode dentro del proyecto
- 13. Xcode 4.2 ¿cómo incluir un proyecto en otro?
- 14. Encontrar métodos de anulación
- 15. ¿Cómo colapsar todos los métodos en XCode?
- 16. Encontrar qué métodos tiene un objeto Python
- 17. ¿Cómo construyo un proyecto xcode para la tienda de iTunes?
- 18. Fusionando archivos de proyecto Xcode
- 19. ¿Define __MyCompanyName__ en Xcode por proyecto?
- 20. Eliminar git del proyecto en Xcode 4
- 21. agregando una biblioteca simple a un proyecto xcode 4
- 22. Incluyendo encabezados en un proyecto de Xcode 4.2.1
- 23. ¿Qué hace la aplicación delegada en un proyecto xcode?
- 24. ¿Cómo configuro un proyecto OpenGL utilizando XCode 4.2 en C++?
- 25. Cómo instalar phoneGap en un proyecto de Xcode existente
- 26. ¿Cómo activar/desactivar ARC en un proyecto de xcode?
- 27. ¿Cómo iniciar un proyecto de Java en Xcode?
- 28. Agregar bibliotecas a un proyecto en xcode - símbolos no encontrados
- 29. ¿Cómo puedo crear un proyecto Ruby en Xcode?
- 30. Importar un proyecto de python existente a XCode
Creo que http://stackoverflow.com/questions/1456966/how-to-detect-unused-methods-and-import-in-objective-c esta publicación puede ser útil para su pregunta. – donkey