Почему в Xcode могут быть созданы группы, но не настоящие папки?
При выполнении iOS-программирования интересно, что в Xcode (4.3.2) мы можем создавать группы, такие как групповой вызов Images
, и добавлять к нему файлы (либо в виде ссылки, либо выбрать "Копировать элементы в групповой папки" ). Таким образом, он выглядит как настоящая папка в навигаторе и даже упоминает "копировать в... группу папку", но на самом деле нет папки. Все добавленные файлы находятся в том же месте, что и файлы .m
и .h
.
Зачем нам нужны группы, но не настоящая папка? Есть ли преимущество групп в использовании папки?
Ответы
Ответ 1
Рекомендуемый способ организации файлов осуществляется через группы, поскольку он более гибкий, чем создание каталогов, и позволяет создавать сложные иерархии файлов, сохраняя при этом совершенно иную иерархию файлов в файловой системе. Это просто инструмент организации. Тем не менее, можно превратить группы в ссылки на папки или создать их вначале как ссылки на папки.
Кроме того, использование групп вместо ссылок на папки дает вам большую гибкость, если вам нужно изменить, где все находится в файловой системе, - скажем, что у вас есть общая папка кода, которую вы используете в кучке разных проектов. Группы позволяют организовывать файлы внутри проектов, как если бы они были в проектах, сохраняя при этом одну копию кода в центральном месте. И да, вы можете сделать это с помощью ссылок на папки, но группы намного более гибкие, если позже вы захотите добавить другие вещи в одну группу, но не хотите, чтобы их добавляли в эту общую папку.
Если вы хотите связать группу с папкой, нажмите на группу в дереве файлов проекта и нажмите команду + option + 1. Ниже выпадающего списка, который будет говорить что-то вроде "Путь: относительно группы" справа, есть маленький белый квадрат с серой рамкой вокруг него своего рода значок рядом со словом "none". Нажав на это, а затем выбрав/создав папку, она привяжет группу к папке.
![folder reference]()
Кроме того, когда вы перетаскиваете папку в Xcode, она спросит вас, хотите ли вы, чтобы она была ссылкой на группу или папку:
![adding a folder reference]()
Ответ 2
Это мое домашнее животное.
Я рекомендую, создав папку в вашей файловой системе, где у вас есть файлы проекта, затем перетащите эту папку в Xcode, где вы хотите группу. Он будет действовать как любая другая группа, но теперь будет привязан к папке в файловой системе. Добавление файлов в эту группу в Xcode теперь добавляет их в папку в файловой системе.
Более чистый способ работы и помогает при поиске файлов в больших проектах. Удерживает git очиститель.
Обновление для Xcode 9:
Когда у вас есть группы в Xcode, соответствующие структуре каталогов на диске, перемещение файла из одной группы в другую в Xcode теперь приведет к правильному перемещению файла на диске, чтобы он соответствовал.
Ответ 3
Существует инструмент командной строки - "synx"
доступные в github, которые делают именно то, что вам нужно.
Он реорганизует папку проекта Xcode в finder для соответствия группам Xcode в проекте.
Вы можете найти его здесь:
https://github.com/venmo/synx