2010-10-08 14 views

Respuesta

1

Buscar el proyecto con el nombre de clase podría ser una opción, aunque quizás no sea la mejor solución. Especialmente puede llevar mucho tiempo cuando tienes muchas clases.

4

Si los archivos de clase solo se sientan en su proyecto sin ser parte de un objetivo, simplemente haga clic en el proyecto en la vista de árbol, para ver todos los archivos en la tabla. Asegúrese de ver la columna "Orientación" en la vista de tabla, repita los objetivos y encuentre los archivos que no tienen una marca en algún lugar -> ya no están compilados.

Pero si aún compila las clases y ya no se usan, ese caso es un poco más difícil. Echa un vistazo a este proyecto

http://www.karppinen.fi/analysistool/#dependency-graphs

Se puede crear un gráfico de dependencias y tratar de encontrar las clases huérfanos de esa manera.

Editar: Enlace se cortó, pero todavía parece ser proyectos de gráficos de dependencia de Objective-C en torno, por ejemplo https://github.com/nst/objc_dep

+0

La columna de destino puede ser engañosa, ya que solo considera el objetivo activo. Si la clase no se usa en el objetivo activo pero se usa en otro objetivo, la columna de destino no tendrá marca de verificación aunque se esté utilizando. –

+0

Es por eso que sugerí tratar de encontrar archivos que no tienen una marca en ninguno de los objetivos. Por supuesto, esto no será muy divertido si tienes muchos objetivos ... –

+0

@ w.m el enlace está muerto. – zekel

2

si son C o C símbolos ++, a continuación, puedes dejar que el enlazador haga el trabajo para ti.

si está buscando eliminar símbolos Objc, intente refabricar el nombre de la clase (por ejemplo, para cambiar el nombre de la clase) y previsualice las dependencias que aparece. si hace referencia a clases/selectores/etc. por cuerdas, entonces ... puede que no sea tan efectivo. desafortunadamente, a menudo también debes probar manualmente, para verificar que eliminar una clase no rompa nada. recuerde que los recursos (como xibs) también pueden hacer referencia/cargar clases objc.

2

Esta es una pregunta complicada debido a lo dinámico que es el objetivo-c ya que nunca se puede garantizar que una clase no vaya a ser utilizada.

Considere si genera un nombre de clase y un selector en tiempo de ejecución y luego busca esa clase, cree una instancia de esa clase y luego llame a un método en ese objeto recién creado utilizando ese selector recién creado. En ningún lugar de su código nombra y ejemplifica explícitamente ese objeto, pero puede usarlo de todos modos. Puede obtener ese nombre de clase y nombre de selector desde cualquier lugar fuera de su código, incluso desde algunos datos de un servidor en algún lugar. ¿Cómo sabrías qué clase no se va a utilizar? Debido a esto, no hay herramientas que puedan realizar lo que está solicitando.

Cuestiones relacionadas