XCode 4.2中单独项目中的参考代码

时间:2012-01-10 15:05:50

标签: ios xcode xcode4 automatic-ref-counting

我正在开发一个使用第三方库的iOS应用程序。我想迁移我的项目以使用ARC,但第三方库仍在使用旧的内存管理。所以我想分离第三方代码并将其放在一个没有ARC的单独项目中,然后以某种方式将该项目链接到我的iOS应用程序项目中,以便它们将使用相同的配置一起构建。

这是否可以以一种非常简单的方式进行,或者我最好只关闭单个文件的ARC? (看起来很乏味......)

我可以使用工作区吗?哪个项目是我的iOS应用程序而另一个项目只包含第三方代码?

我玩过一段时间并且用Google搜索了很多东西,但似乎没有任何简单的灵魂,或者我错了?

1 个答案:

答案 0 :(得分:4)

所以我在不同的博客中提供了很多帮助,我自己想出来了。这个基本的东西应该是更简单和有据可查的...但是我们这里,这是我为AsiHttpRequest获取库所做的:

  1. 创建一个新的iOS项目。选择“Cocoa Touch Static Library”模板。无论你喜欢什么,都可以打您不想勾选“使用自动引用计数”,因为AsiHttpRequest不支持它。
  2. 选择您的图书馆项目的位置(以后会很重要)。
  3. 删除Xcode创建的默认.h-和.m文件。
  4. 将AsiHttpRequest文件拖放到项目中
  5. 您可以添加AsiHttpRequest所依赖的框架,但无论如何您都必须将它们添加到主项目中,因此没有必要。
  6. 尝试构建项目,它应该没有错误。
  7. 打开您的主项目
  8. 从finder中,将您的库.proj文件拖到您的主项目中(在Xcode中,以便它“登陆”主项目文件)
  9. 库项目现在应该出现在您的主项目下(仍然在XCode中)。它应该是可扩展的,您也应该能够看到库项目文件。如果没有,请尝试关闭所有打开的项目并重新打开主项目。
  10. 选择主项目,然后选择目标。在Build Phases - Link Binary With Libraries下,单击+ -sign。
  11. 在框架列表中,您应该看到您的库项目(称为类似libname.a)。选择该文件
  12. 新添加的文件可能在框架列表中显示为红色,不用担心,无论如何都可以。猜猜这是个错误。
  13. 仍在目标之下,请转到“构建设置”
  14. 在页眉搜索路径下,添加库.h文件所在的相对搜索路径。这与您的主要项目.proj文件有关。 (例如../some folder / libproject /)
  15. 希望您的主项目能够无错误地构建,并且库项目将同时构建,使用与主项目相同的配置。
  16. 我不知道这是一个好方法,还是有更简单的方法。但是,我喜欢这个,因为我可以在几个项目中使用库项目。如果我想更新库项目,我只需要在一个地方完成,其他项目也会更新,因为它们都引用了同一个项目。

    <强> EDIT1: 使用目标c类别的图书馆项目存在一些问题。在尝试调用这些方法时,我在运行时收到无法识别的选择器发送到实例错误。通过遵循here给出的答案解决了这个问题。

    1. 转到主项目中构建目标的设置,并将-ObjC添加到名为Other Linker Flags
    2. 的条目中

      <强> EDIT2: 我找到了用于创建Universal框架的this模板。我没有尝试过,但我想这样的事情也会起作用。