Подтвердить что ты не робот

Как найти и удалить неиспользуемые файлы классов из проекта

Мой проект XCode несколько вырос, и я знаю, что там есть файлы классов, которые больше не используются. Есть ли простой способ найти все эти и удалить их?

4b9b3361

Ответ 1

Если файлы классов просто сидят в вашем проекте, не будучи частью цели, просто нажмите на сам проект в древовидном представлении, чтобы вы увидели все файлы в таблице. Убедитесь, что вы видите столбец "Целевой" в представлении таблицы, перебираете цели и находите файлы, которые не имеют чек где-либо → они больше не компилируются.

Но если вы все еще собираете классы, и они больше не используются, этот случай немного сложнее. Проверьте этот проект

http://www.karppinen.fi/analysistool/#dependency-graphsЗабастовкa >

Вы можете создать граф зависимостей и попытаться найти осиротые классы таким образом.

Изменить: ссылка пошла мертвой, но по-прежнему существуют проекты графиков зависимостей Objective-C, например https://github.com/nst/objc_dep

Ответ 2

если они являются символами C или С++, тогда вы можете просто позволить компоновщику выполнить эту работу для вас.

если вы хотите удалить символы objc, попробуйте реорганизовать имя класса (например, переименовать класс) и просмотреть зависящие от него зависимости. если вы ссылаетесь на классы/селекторы/и т.д. по строкам, то... это может быть не так эффективно. к сожалению, вам часто приходится также проверять вручную, чтобы убедиться, что удаление класса ничего не сломает. помните, что ресурсы (например, xibs) могут ссылаться на классы objc и загружать их.

Ответ 3

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

Учитывайте, генерируете ли вы имя класса и селектор во время выполнения, а затем просматриваете этот класс, создаете экземпляр этого класса, а затем вызываете метод для этого вновь созданного объекта с помощью этого вновь созданного селектора. Нет, где в вашем коде вы явно указываете и создаете экземпляр этого объекта, но можете использовать его в любом случае. Вы можете получить это имя класса и имя селектора из любого места вне вашего кода, даже из некоторых данных с сервера где-нибудь. Как бы вы узнали, какой класс не будет использоваться? Из-за этого нет инструментов, которые могут выполнять то, что вы запрашиваете.

Ответ 4

Поиск проекта с именем класса может быть вариантом, считающим, что это не лучшее решение. Специально это может занять много времени, когда у вас много классов.