Xcode находит мертвые методы в проекте

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


person William Jockusch    schedule 21.01.2011    source источник
comment
Я думаю stackoverflow.com/questions/1456966/ этот пост может быть полезен для вашего вопроса.   -  person donkey    schedule 10.05.2014


Ответы (2)


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

Кроме того, в этом скрипте есть несколько интересных мыслей по этому поводу.

person Community    schedule 21.01.2011

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

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

person Daniel Dickison    schedule 22.01.2011
comment
Да, текстовая находка часто бывает здоровой. Я хотел бы найти способ найти все методы, которые не вызываются явно. Было бы нетрудно разобраться с теми немногими, которые вызываются другими способами. - person William Jockusch; 23.01.2011