Мне любопытно, есть ли какие-либо инструменты, которые обеспечивают частичные решения для этого. Это сложная проблема из-за PerformSelector . . . но инструмент должен, по крайней мере, быть в состоянии выдвигать кандидатов, облегчая работу человека.
Xcode находит мертвые методы в проекте
Ответы (2)
Используя статический анализ, невозможно обнаружить функции/методы, которые определены, но не используются из-за динамической природы Objective-C. Единственным разумным решением является запуск покрытия с помощью GCov
или аналогичного инструмента. Даже в этом случае вам придется заставить свою программу сделать все возможное, чтобы убедиться, что вы не убрали какую-то функцию, которая просто не использовалась во время тестирования.
Кроме того, в этом скрипте есть несколько интересных мыслей по этому поводу.
Учитывая очень подробные, но описательные имена методов, которые часто выбираются в программах на языке Objective-C, я считаю, что текстового поиска в проекте обычно достаточно. Обычно я просто использую первую часть имени метода, чтобы не совпадать с аргументами метода. Это будет соответствовать обычным вызовам методов и использованию @selector
и NSSelectorFromString
.
Конечно, это не будет работать для очень распространенных имен методов или если вам нужна остальная часть имени метода для устранения неоднозначности между многими похожими методами, но я считаю, что это редкое явление.