Мне любопытно, есть ли какие-либо инструменты, обеспечивающие частичные решения для этого. Это сложная проблема из-за performSelector. , , но инструмент должен, по крайней мере, иметь возможность выдвигать кандидатов, облегчая работу человека.Xcode - поиск мертвых методов в проекте
ответ
Используя статический анализ, невозможно определить функции/методы, которые определены, но не используются из-за динамического характера Objective-C. Единственным разумным решением является запуск покрытия с использованием GCov
или аналогичного инструмента. Даже тогда вам нужно будет сделать вашу программу максимально возможной, чтобы вы не отделили какую-то функцию, которая просто не использовалась во время тестирования.
Также есть this script.
Учитывая очень многословные, но описательные имена методов, которые часто выбираются в программах Objective-C, я считаю, что выполнение текстового поиска в проекте обычно достаточно. Обычно я просто использую первую часть имени метода, чтобы избежать необходимости сопоставлять аргументы метода. Это будет соответствовать обычным вызовам методов и использованию @selector
и NSSelectorFromString
.
Конечно, это не сработает для очень распространенных имен методов или если вам понадобится остальное имя метода для устранения неоднозначности между многими аналогичными методами, но я считаю, что это редкое явление.
Да, текстовая находка часто велика. Мне бы очень хотелось найти все методы, которые не называются явно. Было бы нелегко разобраться с теми, кого вызвали другими способами. –
Я думаю http://stackoverflow.com/questions/1456966/how-to-detect-unused-methods-and-import-in-objective-c Этот пост может быть полезен для вашего вопроса. – donkey