2010-10-14 3 views
4

Проект iPad, над которым я работал, стал раздутым с огромным количеством файлов. Приложение является прототипом, и мы рассматриваем способы предотвращения этого, когда мы его переписываем.Разделение проекта на несколько файлов проекта Xcode

Один из членов нашей команды предлагает разделить все компоненты на отдельные проекты Xcode, которые будут включены в основной проект Xcode.

Это хорошая идея? Каковы причины, если таковые имеются, чтобы избежать разделения функций/компонентов/элементов управления на отдельные проекты Xcode?

ответ

1

Теперь с Xcode4 вы можете создать рабочую область и добавить туда все свои проекты. Только для целей документации :)

+0

Вы можете запускать проекты из рабочей области. Возможно, вы ссылались на проекты документации (которые можно добавить в рабочую область), когда вы говорите «только для целей документации». – titaniumdecoy

0

Проект Xcode может иметь любое количество целей сборки внутри него, и вы можете произвольно группировать исходные файлы в папки. Почему вы думаете, что необходимы несколько проектов?

+0

Может быть, он не любит видеть все папки и файлы? – SmallChess

+0

Идея состоит в том, чтобы обеспечить разделение компонентов. – titaniumdecoy

2

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

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

Действительно, правильно спроектированное объектно-ориентированное приложение должно быть легко разложено на несколько проектов. В идеале все компоненты настолько инкапсулируются, что им не нужны другие, кроме модели данных.

+0

Как это работает? Я попытался добавить еще один проект Xcode в главный проект Xcode, но когда я скомпилировал ни один из файлов в другом проекте, вы не можете найти. – titaniumdecoy

+0

Добавьте внешний документ проекта по ссылке вместо копирования. Пути к исходным файлам проектов относятся к расположению самого документа проекта. Если вы используете копию файла проекта вне каталога проекта, Xcode не может найти файлы. – TechZen

2

Мы поместили часть кода в свой собственный проект, создав структуру, с которой мы ссылаемся в некоторых других проектах. Иногда бывает неприятно, что вы сразу же не увидите файлы реализации кода рамки в другом проекте (с помощью cmd + click или cmd + shift + D или того, что вы обычно делаете для навигации). Xcode покажет вам только заголовок, вам придется открыть другой проект и найти файл там вручную. Неважно, но если вы часто просматриваете код, это вас беспокоит.

Настоящая проблема заключается в том, что вы меняете сферу некоторых операций. Такие вещи, как «Найти в проекте», будут работать с другим набором файлов, который иногда может быть не таким, каким вы хотите (попытка найти, где этот метод называется/ключ используется во всем коде или что-то еще); ну, остается Finder/find, так что все может быть в порядке. Рефакторинг не является - все переименование вещей просто ломается, так как это изменит только код текущего проекта, но не проекты, ссылающиеся на этот. Если вы часто меняете интерфейсы, лучше избегайте разделения проекта.

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

1

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

1 шаг - перетащите файлы проекта .xcode в основной проект.

2 шаг - Перейти к основному проекту ЦЕЛИ -> Сформировать фазы. Добавить цель подпроекта в целевых зависимостях. Вы также можете добавить двоичные файлы в Link Binary With Libraries.

3 step - Добавить путь к проекту подпроекта для основного пути поиска заголовков проектов. Перейти к основному проекту -> Настройки сборки -> Пути поиска заголовков (например, $ (SRCROOT) /../ CoconutKit-master/CoconutKit/Sources)

Смежные вопросы