2011-01-21 13 views
6

Sono curioso di sapere se esistono strumenti che forniscono soluzioni parziali per questo. È un problema complicato a causa di performSelector. . . ma uno strumento dovrebbe almeno essere in grado di venire con i candidati, rendendo più facile il lavoro dell'uomo.Xcode - trovare metodi morti in un progetto

+0

Penso http://stackoverflow.com/questions/1456966/how-to-detect-unused-methods-and-import-in-objective-c questo post potrebbe essere utile alla tua domanda. – donkey

risposta

3

Utilizzando analisi statica, è impossibile rilevare funzioni/metodi definiti ma non utilizzati a causa della natura dinamica di Objective-C. L'unica soluzione ragionevole è quella di eseguire una copertura utilizzando GCov o strumento simile. Anche in questo caso, dovrai fare in modo che il tuo programma faccia tutto il possibile per assicurarti di non escludere alcune funzionalità che non erano state utilizzate durante i test.

Inoltre, this script ha alcune interessanti riflessioni su questo.

1

Visti i nomi dei metodi molto prolisso, ma descrittivi spesso scelti nei programmi Objective-C, trovo che facendo un testo Find In Project è di solito sufficiente. Solitamente userò solo la prima parte del nome di un metodo per evitare di dover confrontare gli argomenti del metodo. Questo corrisponderà alle normali chiamate di metodo e all'uso di @selector e NSSelectorFromString.

Ovviamente, questo non funzionerà con nomi di metodi molto comuni o se è necessario il resto del nome del metodo per disambiguare tra molti metodi simili, ma trovo che sia un evento raro.

+0

Sì, una ricerca testuale è spesso ottima. Mi piacerebbe un modo per trovare tutti i metodi che non sono chiamati esplicitamente. Non sarebbe difficile risolvere i pochi che vengono chiamati in altri modi. –