gpt4 book ai didi

ios - 在 XCode 4.2 的单独项目中引用代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:50:57 35 4
gpt4 key购买 nike

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

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

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

我玩了一会儿并用谷歌搜索了很多,但似乎没有任何简单的想法,或者我错了吗?

最佳答案

所以在不同博客的大量帮助下,我自己弄明白了。这个基本的东西应该更琐碎并且有据可查......但是我们开始吧,这就是我为 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 下,单击 + 号。
  11. 在框架列表中,您应该会看到您的库项目(名称类似于 libname.a)。选择该文件
  12. 新添加的文件可能会在框架列表中显示为红色,别担心,它无论如何都可以工作。猜猜这是一个错误。
  13. 仍在目标下,转到build设置
  14. 在 header 搜索路径下,将相对搜索路径添加到库 .h 文件所在的位置。这与您的主要项目 .proj 文件有关。 (例如../some folder/libproject/)
  15. 希望您的主项目构建没有错误,库项目将同时构建,使用与主项目相同的配置。

我不知道这是否是一个好方法,或者是否有更简单的方法。但是,我喜欢这样,因为我可以在多个项目中使用库项目。如果我想更新库项目,我只需要在一个地方做,其他项目也会更新,因为它们都引用同一个项目。

编辑1:我在使用 objective c 类别的库项目中遇到了一些问题。尝试调用这些方法时,我在运行时收到无法识别的选择器发送到实例错误。按照给出的答案解决了这个问题 here .

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

编辑2:我找到了 this用于创建通用框架的模板。我还没有尝试过,但我想这样的方法也可以。

关于ios - 在 XCode 4.2 的单独项目中引用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805413/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com