2011-01-21 27 views
6

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

+0

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

Respuesta

3

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.

1

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.

+0

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. –

Cuestiones relacionadas