Организация и структура ресурсов проекта XCode - PullRequest
22 голосов
/ 15 июля 2009

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

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

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

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

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

Спасибо!

Ответы [ 4 ]

20 голосов
/ 15 июля 2009

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

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

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

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

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

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

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

5 голосов
/ 05 апреля 2012

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

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

  2. Пошли в меню файлов

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

  4. Выбрано «Добавить файлы в имя проекта»

  5. Добавлены файлы из каталога, который я создал в (1)

3 голосов
/ 15 июля 2009

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

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

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

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

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

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

2 голосов
/ 15 июля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...