Я хочу создать ядро приложения, которое подключается к веб-сервису, загружает данные, анализирует его и затем возвращает его в контроллер представления. Это ядро идеально обрабатывало бы запросы от нескольких контроллеров и абстрагировало бы много повторяющегося кода. Кроме того, я хочу потенциально использовать это ядро для приложения mac os x. Стали ли эти задачи хорошей идеей для статической библиотеки? Кроме того, как добавить статическую библиотеку в приложение для iPhone? Как только статическая библиотека добавляется, как мне ее ссылаться (т. Е. Импортные инструкции и т. Д.)?Назначение статической библиотеки
ответ
Я хочу создать ядро приложения, которое подключается к веб-сервису, загружает данные, анализирует его и затем возвращает его в контроллер вида. Это ядро идеально обрабатывало бы запросы от нескольких контроллеров и абстрагировало бы много повторяющегося кода. Кроме того, я хочу потенциально использовать это ядро для приложения mac os x. Стали ли эти задачи хорошей идеей для статической библиотеки?
Да.
Также, как добавить статическую библиотеку в приложение для iPhone?
Добавить цель статической библиотеки в свой проект, а затем добавить ее продукт сборки в целевое приложение вашего iPhone. Когда вы начнете работать с вашим Mac OS X, добавьте также продукт сборки библиотеки в эту цель.
Как только статическая библиотека добавляется, как мне ее ссылаться (то есть импортные заявления и т. Д.)?
#import
- препроцессорная директива; вы используете его в файле заголовка на этапе предварительной обработки фазы компиляции-источника-файлов.
Компиляция исходных файлов создает объектные файлы, которые компоновщик будет сливать (ссылка) вместе на следующем этапе. Эта фаза также включает компоновку ссылок в любых статических библиотеках.
У вас должен быть продукт сборки библиотек (из целевого объекта библиотеки), добавленный в фазу Link Binaries цели приложения, чтобы линкер связал библиотеку с вашим приложением.
Не могу поверить, что я могу создать статическую библиотеку, если вы не хотите распространять ее без распространения источника. Вы должны перекомпилировать для каждой платформы, чтобы вы могли просто добавить файлы .h и .m из общего места (например, не копируйте файл в проекты при их добавлении. «Добавить существующий файл». .. », вы можете отменить выбор флажка« Скопировать элементы в папку целевой группы (если необходимо) »при добавлении). Затем любые изменения, внесенные в файлы библиотеки, будут обновляться в обоих проектах. Построение статической библиотеки просто добавляет еще один уровень сложности (дополнительные цели и т. Д.), Что не нужно (ИМХО, извините, не согласен с Питером ;-).
С наилучшими пожеланиями.
Точка библиотеки - это то, что вы НЕ хотите, чтобы она просто молчала, меняя себя - без предупреждения - вводя новые ошибки, принося назад старые ошибки и т. д. Это сильная версия идеи «инкапсуляции», которая частично вдохновила на создание ООП. Это ужасный кошмар. После того, как вы провели дни, пытаясь отлаживать, почему ваше приложение перешло от «работающего» к «сломанному» без видимых причин и в конечном итоге доказать, что вы изменили НИЧЕГО ... а затем провели дни, размышляя, как это может произойти, и ненавидит Xcode для не будучи в состоянии правильно почистить ... вы увидите ценность библиотек :). – Adam
- 1. Создание статической библиотеки, которая зависит от другой статической библиотеки (RestKit)
- 2. Статической ошибка сегментации библиотеки при вызове другой статической библиотеки
- 3. Назначение объекта в статической переменной
- 4. Назначение статической переменной нестатической переменной
- 5. Невозможная сборка статической библиотеки
- 6. Обратный вызов статической библиотеки
- 7. сборка статической библиотеки gcc
- 8. Ошибка связывания статической библиотеки
- 9. зависимостей статической библиотеки
- 10. Содержимое статической библиотеки
- 11. Каскадное связывание статической библиотеки?
- 12. Открытость статической библиотеки iOS
- 13. г ++ связываннии статической библиотеки
- 14. предотвратить инициализацию статической библиотеки
- 15. g ++ порядок статической библиотеки?
- 16. Makefile ... создание статической библиотеки
- 17. динамическая загрузка статической библиотеки?
- 18. создание статической библиотеки
- 19. Копирование защиты статической библиотеки
- 20. Использование статической библиотеки
- 21. Поделитесь частью статической библиотеки
- 22. создание путаницы статической библиотеки
- 23. Реализация статической библиотеки
- 24. Связывание статической библиотеки с проектом библиотеки классов
- 25. Использование статической библиотеки вместо общей библиотеки
- 26. Назначение библиотеки i18n
- 27. Назначение библиотеки Microsoft.Owin.Security.ActiveDirectory
- 28. Назначение статической переменной другой статической переменной. Почему это вызывает ошибку?
- 29. Система лицензирования для статической библиотеки
- 30. Изменения включает путь статической библиотеки
спасибо за ваш ответ - я все еще немного смущен, мне нужны операторы импорта? Если это так, я просто использую имя файла в статической библиотеке для инструкции import? – zpesk
Чтобы импортировать заголовочный файл, вам понадобится инструкция '# import'. '# import' (который является директивой * препроцессора *) и библиотеки (которые вы указываете * компоновщику *) не имеют ничего общего друг с другом. Цель '# import' заключается в' # import' заголовке для интерфейса из библиотеки (например, интерфейса для класса в библиотеке) в исходный файл, в котором вы будете использовать этот интерфейс. –
Проще говоря, заголовок содержит декларации, а библиотека содержит фактические реализации.Вам нужно «# import» декларации, чтобы компилятор знал, какой код вы будете использовать; вам необходимо связать библиотеку с вашим приложением, чтобы ваше приложение имело код, доступный во время выполнения. –