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

Организация и структура ресурсов проекта Xcode

Привет, ребята, я относительно новичок в Xcode, и одна вещь, которая меня беспокоила, заключается в том, что когда я добавляю ресурс, он добавляется в каталог верхнего уровня моего каталога проектов. Так, например, на данный момент все мои изображения находятся в каталоге верхнего уровня, и это заставляет вещи выглядеть грязными. Мне бы хотелось, например, иметь папку images/, а затем вложенные в нее папки для хранения изображений для определенных вещей, например значки tab-bar/, Это возможно? Или это соглашение просто сохранить все в каталоге верхнего уровня?

Кто-то из канала #iphonedev на freenode рассказал мне что-то о правиле процесса сборки или что-то в этом роде, это просто показалось мне слишком сложным, я подумал, что не должен беспокоиться, и что большинство людей просто держат вещи в своем корневом каталоге, учитывая сложность решения. Возможно, это не так уж сложно, но я просто чувствовал, что это должно быть проще.

Например, мне также хотелось бы иметь подпапку для моих просмотров, например views/, в которой хранятся все мои файлы nib; в настоящее время они все находятся в каталоге верхнего уровня. И то же самое касается моих списков свойств.

Я был бы признателен, если бы вы могли сказать мне, что такое соглашение, я сомневаюсь, что это просто сохранить все в каталоге верхнего уровня. И я имею в виду фактическую файловую систему, а не просто создание "виртуальных папок" в Xcode для организации вещей, потому что каталог верхнего уровня моего проекта по-прежнему будет беспорядочным. И если можно лучше организовать вещи, я буду благодарен за любую подробную помощь в том, как ее выполнить.

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

Спасибо!

4b9b3361

Ответ 1

Вот немного больше объяснений предложения Грэма:

  • Создать каталог изображений
  • Создание группы изображений в Xcode
  • Щелкните правой кнопкой мыши группу и получите информацию
  • "Выбрать...", чтобы установить каталог в качестве каталога изображений.

Теперь все, что вы помещаете в группу изображений, автоматически перейдет в каталог изображений. Это правда, если вы перетаскиваете/удаляете из Xcode, из других других проектов или из Finder, или если вы добавляете новый..., щелкнув правой кнопкой мыши по каталогу изображений. (Предполагается, что вы оставите настройку по умолчанию "относительно группы" в информационной панели.)

Это будет работать на все, что вы помещаете в эту группу (NIB и т.д.).

Для imageNamed: вы просто укажете базовое имя.

Моя рекомендация состоит в том, чтобы хранить небольшое количество каталогов файловой системы и в основном организовывать группы в Xcode. Но я согласен, небольшое количество файловых каталогов очень полезно. Я поместил весь свой исходный код в каталог Classes (только потому, что Apple использовала это имя, я бы выбрал "Источники" или что-то еще). У меня также есть каталог ресурсов на верхнем уровне и, как правило, создает изображения и аудио-каталоги под этим. Но я, как правило, не создаю множество настоящих справочников. Это немного упрощает, но облегчает grep и подстановочные элементы с оболочкой.

Помимо инструментов оболочки, большое преимущество организации группами, а не каталогами - это влияние на системы контроля версий, такие как подрывная деятельность. Когда вы вдруг осознаете, что ваша группа "Виды" слишком велика, вы можете ее реорганизовать, не оказывая огромного влияния на перемещение файлов.

Ответ 2

Принятый ответ не работал у меня в Xcode 4.3.2. Похоже, они удалили опцию меню "Получить информацию". Вместо этого я сделал это:

  • Создал каталог на диске, где я этого хотел.

  • Пошел в меню файла

  • Щелкните правой кнопкой мыши на группе, которую я хотел добавить в

  • Выбрано "Добавить файлы в PROJECTNAME"

  • Добавлены файлы из созданного мной каталога (1)

Ответ 3

Жизнь трудна для IDE. Они должны посредничать между миром файловой системы, где компилятор, с его исходными файлами, и с интерфейсом пользовательского интерфейса, где работают программисты.

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

В любом случае, если вы считаете, что ваша среда IDE является интерфейсом смешной системы баз данных исходного кода, и если вы действительно полностью уверены в ее возможностях и возможностях (что редко бывает), вы можете прийти к выводу, что если вам просто не нужна файловая система, у вас может быть лучшая жизнь, как программист (и как человек).

Вы правы, потому что Xcode не очень хорош и не дружелюбен в отношении организации кода файловой системы и людей, которые (правильно) придирчивы к этому, узнают, как перемещать файлы в их правой папке на диске, и в их правой группе Xcode, Если вы используете "Создать ссылки на папки для любых добавленных папок", используйте соотношение 1:1.

Но вы увидите много людей, и многие примеры проектов из Apple itsef, которые используют простое дерево плоской файловой системы со всем, что находится в той же папке.

Мой совет состоит в том, что вы, по крайней мере, группируете публичные заголовки и ресурсы в разных папках, что-то вроде Java/Maven, но нет универсального соглашения.

Ответ 4

На самом деле очень легко добраться от того места, где вы находитесь, где вы хотите быть. Создайте папку images/ и поместите в нее все изображения. Теперь в окне проекта в Xcode файлы изображений покраснели, потому что их больше нет. Получите информацию о них и "Выберите..." новое местоположение.

Обратите внимание, что только потому, что вы переместили файл в исходную файловую систему (известную как $SRCROOT), нет никаких изменений в способе использования файла в продукте. Если он был скопирован в Contents/Resources/ до того, как вы переместили файл, то после этого он будет скопирован. В пункте назначения не будет добавлена ​​вложенная папка.