将一个简单的库添加到xcode 4项目中

时间:2011-08-07 21:08:03

标签: xcode ios4

我知道这是一个非常简单的问题,但我一直在努力解决它。我已经阅读了几个主题,但似乎仍然可以找到答案。

我正在尝试将此DDMathParser库添加到现有项目中。数学解析器文档说明

“只需​​将”DDMathParser“子文件夹复制到您的项目中,#import”DDMathParser.h“,您就可以了。”

我将子文件夹添加到我的项目中,并将标题“#import”DDMathParser.h'添加到我的第一个视图控制器中。首先,Xcode声明它无法找到该文件。我接受了另一个线程的建议更改了我的标题以包含文件夹

#import "DDMathParser/DDMathParser.h"

Xcode似乎找到了文件夹和头文件,但是当我从文档中运行测试时,例如

NSLog(@"%@", [@"1 + 2" numberByEvaluatingString]);

我收到错误'Thread 1:Program received sginal:“SIGABRT”'我可以在DDMathParser示例文件中看到有一个目标,我想知道这是否是我的问题。

澄清我试图将DDMathParser库添加到简单视图控制器并运行staement NSLog(@"%@", [@"1 + 2" numberByEvaluatingString]);的问题 任何帮助/澄清这样做将不胜感激。

2 个答案:

答案 0 :(得分:12)

首先,请不要通过子文件夹副本将DDMathParser代码添加到项目中。这样做会使得轻松获取代码的任何未来更新变得很痛苦,并且通常不是在项目中包含外部代码的非常好的方法。

相反,您应该将git repo添加为项目的子模块(您正在使用git,对吗?)并将相关文件导入项目。这是一个循序渐进的解决方案:

  1. 将DDMathParser repo作为子模块添加到项目中。 Here are instructions关于如何在项目目录中添加子模块。看一下这个答案,但为了简洁起见,您将从项目根目录中的终端发出此命令:git submodule add https://github.com/davedelong/DDMathParser.git External/DDMathParser。这将为项目根目录创建一个名为External的新子目录,在External中将复制DDMathParser项目。
  2. 将DDMathParser目录添加到项目中。它将在<Your Root Project Dir>/External/DDMathParser/DDMathParser目录中找到。请务必选中“添加到目标”复选框,然后选择以选中“复制项目”复选框。
  3. #import "DDMathParser.h"添加到您的viewcontroller。
  4. DDMathParser现在可以按预期工作了。如果作者对代码进行了更新,您只需从终端发出以下命令即可从github获取最新更新:git submodule update

    注意:我从头开始创建了一个新项目,按照这些步骤并包含了您的NSLog()示例,以确保没有任何问题。

答案 1 :(得分:0)

我也遵循了这些步骤,直到我能够使它工作。建议的方法有一些缺陷。

  1. 正如我之前的那个人所拥有的那样---你只带来了它的来源 DDMathParser,并将它们编译为目标的一部分。这种结合 您可以使用相同的构建设置,SDK版本和部署 system-version作为DDMathParser的作者。示例:

    • 没有在我的目标中使用ARC--现在我必须。
    • 我打算在我的项目中使用MacOS 10.8 SDK(原因很多)但是我在一个DDMathParser源代码中出现了奇怪的ARC编译错误,只有当我切换到SDK 10.9(他的样本和文档中作者使用的版本)时才会消失)。
    • 我必须提供MacOS 10.8及以上的应用程序,现在我不确定它是否可行
  2. 我不知道如果我将我的父回购推送到服务器会发生什么,而另一位朋友将其拉出来。他会自动收到DDMathParser仓库吗?怎么样?他必须能够访问它!该计划对我来说似乎并不完整。

  3. 我建议帮助作者将他的DDMathParser打包为框架,然后你就可以将DDMAthParser的PROJECT FILE导入你的项目 - 而不是源代码,只需链接到DDMathParser项目的产品(私人框架)。看起来好多了。框架可以使用作者的设置进行编译,我们只收到包装精美的二进制文件。