добавление простой библиотеки в проект xcode 4
Я знаю, что это очень простой вопрос, но я боролся с этим на некоторое время. Я прочитал несколько тем, но все еще могу найти ответ.
Я пытаюсь добавить этот DDMathParser библиотека для моего существующего проекта. Документация Math parser утверждает
"просто скопируйте вложенную папку" DDMathParser "в свой проект, #import" DDMathParser.h", и вы готовы идти."
я добавил вложенную папку в свой проект и добавил заголовок "#import " DDMathParser.h ' к моему первому контроллеру вида. Сначала Xcode заявлял, что не может найти файл. Я взял совет из другого потока и изменил свой заголовок, чтобы включить папку
#import "DDMathParser/DDMathParser.h"
Xcode, похоже, находит папку и файл заголовка, но когда я запускаю тест из документации, такой как
NSLog(@"%@", [@"1 + 2" numberByEvaluatingString]);
Я получаю ошибку "поток 1: программа получила sginal: "SIGABRT" " я вижу в файле образца DDMathParser, что есть цель, я интересно, моя ли это проблема.
чтобы прояснить вопрос, я пытаюсь добавить DDMathParser библиотека на простой контроллер вида и запустить staement NSLog(@"%@", [@"1 + 2" numberByEvaluatingString]);
Любая помощь / разъяснение при этом были бы весьма признательны.
2 ответов
во-первых, не добавляйте код DDMathParser в свой проект через копию подпапки. Это сделает боль легко захватить любые будущие обновления кода и в целом не очень хороший подход к включению внешнего кода в ваши проекты.
вместо этого вы должны добавить репозиторий git в качестве подмодуля своего проекта (вы используете git, верно?) и импортируйте соответствующие файлы в свой проект. Вот пошаговое решение:
- добавить DDMathParser РЕПО как подмодуль вашего проекта. вот инструкции о том, как добавить подмодуль в каталоге проекта. Взгляните на этот ответ, но для краткости вы выдадите эту команду из терминала в корневом каталоге вашего проекта:
git submodule add https://github.com/davedelong/DDMathParser.git External/DDMathParser
. Это создаст новый подкаталог с именем External для корневого каталога проекта, а внутри External будет скопирован проект DDMathParser. - добавьте каталог DDMathParser в свой проект. Он будет найден в
Я тоже следовал этим шагам, пока не смог заставить его работать. Предложенный метод имеет некоторые недостатки.
-
Как у парня до меня было - - - вы только приносите источники DDMathParser и скомпилируйте их как часть вашей цели. Это связывает вы должны использовать те же параметры сборки, версию SDK и развертывание system-версия как автор DDMathParser. Примеры:
- не использовал ARC в моей цели - - - теперь я должен.
- Я намеревался использовать MacOS 10.8 SDK в моем проекте (по многим веским причинам), но я получил странную ошибку компиляции дуги в одном источнике DDMathParser, которая исчезла только при переключении на SDK 10.9 (версия, используемая автором в его образцах и документах).
- Я должен предоставить свое приложение для MacOS 10.8 и выше, теперь я не уверен, что он будет работать
Я не знаю, что произойдет, если я подтолкну свое родительское РЕПО к серверу, а другой друг вытащит его. Получит ли он РЕПО DDMathParser автоматически? Как? Он должен иметь к нему доступ! Схема кажется мне неполной.
Я предложу помочь автору в упаковке его DDMathParser в качестве фреймворка, а затем вы сможете импортировать файл проекта DDMAthParser в свой проект --- не источники, а просто ссылку на продукт проекта DDMathParser (частная платформа). Кажется, намного лучше. фреймворк можно скомпилировать, используя авторские настройки, и мы просто получим красиво упакованный двоичный файл.