2011-01-21 7 views
6

Мне любопытно, есть ли какие-либо инструменты, обеспечивающие частичные решения для этого. Это сложная проблема из-за performSelector. , , но инструмент должен, по крайней мере, иметь возможность выдвигать кандидатов, облегчая работу человека.Xcode - поиск мертвых методов в проекте

+0

Я думаю http://stackoverflow.com/questions/1456966/how-to-detect-unused-methods-and-import-in-objective-c Этот пост может быть полезен для вашего вопроса. – donkey

ответ

3

Используя статический анализ, невозможно определить функции/методы, которые определены, но не используются из-за динамического характера Objective-C. Единственным разумным решением является запуск покрытия с использованием GCov или аналогичного инструмента. Даже тогда вам нужно будет сделать вашу программу максимально возможной, чтобы вы не отделили какую-то функцию, которая просто не использовалась во время тестирования.

Также есть this script.

1

Учитывая очень многословные, но описательные имена методов, которые часто выбираются в программах Objective-C, я считаю, что выполнение текстового поиска в проекте обычно достаточно. Обычно я просто использую первую часть имени метода, чтобы избежать необходимости сопоставлять аргументы метода. Это будет соответствовать обычным вызовам методов и использованию @selector и NSSelectorFromString.

Конечно, это не сработает для очень распространенных имен методов или если вам понадобится остальное имя метода для устранения неоднозначности между многими аналогичными методами, но я считаю, что это редкое явление.

+0

Да, текстовая находка часто велика. Мне бы очень хотелось найти все методы, которые не называются явно. Было бы нелегко разобраться с теми, кого вызвали другими способами. –