2011-01-21 13 views
6

Jestem ciekawy, czy istnieją jakieś narzędzia, które zapewniają częściowe rozwiązania tego problemu. Jest to trudny problem z powodu performSelector. . . ale narzędzie powinno przynajmniej być w stanie wymyślić kandydatów, ułatwiając pracę człowiekowi.Xcode - znajdowanie martwych metod w projekcie

+0

Myślę, że http://stackoverflow.com/questions/1456966/how-to-detect-unused-methods-and-import-inobjective-c ten post może być pomocny w odpowiedzi na twoje pytanie. – donkey

Odpowiedz

3

Za pomocą analizy statycznej niemożliwe jest wykrycie funkcji/metod, które są zdefiniowane, ale nie są używane ze względu na dynamiczny charakter obiektu C. Jedynym rozsądnym rozwiązaniem jest uruchomienie zasięgu przy użyciu GCov lub podobnego narzędzia. Nawet wtedy będziesz musiał uczynić swój program zrobić wszystko, co możliwe, aby upewnić się, że nie usuniesz jakiejś funkcji, która nie była używana podczas testowania.

Ponadto, this script ma kilka interesujących myśli na ten temat.

1

Biorąc pod uwagę bardzo szczegółowe, ale opisowe nazwy metod często wybierane w programach Objective-C, uważam, że zazwyczaj wystarczy wykonać Find-Project z tekstem. Zwykle używam tylko pierwszej części nazwy metody, aby uniknąć konieczności dopasowywania argumentów metody. Spowoduje to dopasowanie normalnych wywołań metod i użycia @selector i NSSelectorFromString.

Oczywiście to nie zadziała dla bardzo popularnych nazw metod lub jeśli potrzebujesz reszty nazwy metody, aby rozróżnić wiele podobnych metod, ale uważam, że jest to rzadkie zdarzenie.

+0

Tak, wyszukiwanie tekstowe jest często świetne. Chciałbym znaleźć sposób, który nie jest wyraźnie nazwany. Nietrudno będzie wyłapać tych kilku, których nazywane są w inny sposób. –