добавление простой библиотеки в проект 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, верно?) и импортируйте соответствующие файлы в свой проект. Вот пошаговое решение:

  1. добавить DDMathParser РЕПО как подмодуль вашего проекта. вот инструкции о том, как добавить подмодуль в каталоге проекта. Взгляните на этот ответ, но для краткости вы выдадите эту команду из терминала в корневом каталоге вашего проекта:git submodule add https://github.com/davedelong/DDMathParser.git External/DDMathParser. Это создаст новый подкаталог с именем External для корневого каталога проекта, а внутри External будет скопирован проект DDMathParser.
  2. добавьте каталог DDMathParser в свой проект. Он будет найден в

Я тоже следовал этим шагам, пока не смог заставить его работать. Предложенный метод имеет некоторые недостатки.

  1. Как у парня до меня было - - - вы только приносите источники DDMathParser и скомпилируйте их как часть вашей цели. Это связывает вы должны использовать те же параметры сборки, версию SDK и развертывание system-версия как автор DDMathParser. Примеры:

    • не использовал ARC в моей цели - - - теперь я должен.
    • Я намеревался использовать MacOS 10.8 SDK в моем проекте (по многим веским причинам), но я получил странную ошибку компиляции дуги в одном источнике DDMathParser, которая исчезла только при переключении на SDK 10.9 (версия, используемая автором в его образцах и документах).
    • Я должен предоставить свое приложение для MacOS 10.8 и выше, теперь я не уверен, что он будет работать
  2. Я не знаю, что произойдет, если я подтолкну свое родительское РЕПО к серверу, а другой друг вытащит его. Получит ли он РЕПО DDMathParser автоматически? Как? Он должен иметь к нему доступ! Схема кажется мне неполной.

Я предложу помочь автору в упаковке его DDMathParser в качестве фреймворка, а затем вы сможете импортировать файл проекта DDMAthParser в свой проект --- не источники, а просто ссылку на продукт проекта DDMathParser (частная платформа). Кажется, намного лучше. фреймворк можно скомпилировать, используя авторские настройки, и мы просто получим красиво упакованный двоичный файл.