Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios XCode 4.2中单独项目中的参考代码_Ios_Xcode_Xcode4_Automatic Ref Counting - Fatal编程技术网

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

Ios XCode 4.2中单独项目中的参考代码,ios,xcode,xcode4,automatic-ref-counting,Ios,Xcode,Xcode4,Automatic Ref Counting,我正在开发一个使用第三方库的iOS应用程序。我想将我的项目迁移到使用ARC,但第三方库仍在使用旧的内存管理。因此,我想分离第三方代码并将其放在一个没有ARC的单独项目中,然后以某种方式将该项目链接到我的iOS应用程序项目中,以便使用相同的配置将它们构建在一起 这是否可以用一种非常简单的方法来实现,或者我只是关闭单个文件的ARC更好?(似乎很乏味……) 我可以使用工作区吗?其中一个项目是我的iOS应用程序,另一个仅包含第三方代码 我玩过一些游戏,也用谷歌搜索过很多次,但似乎没有任何简单的解决方法,

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

这是否可以用一种非常简单的方法来实现,或者我只是关闭单个文件的ARC更好?(似乎很乏味……)

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


我玩过一些游戏,也用谷歌搜索过很多次,但似乎没有任何简单的解决方法,还是我错了

所以我在不同博客的帮助下自己找到了答案。这个基本的东西应该更琐碎,并且有很好的文档记录。。。但现在我们开始,这就是我为AsiHttpRequest获得一个库所做的:

  • 创建一个新的iOS项目。选择“Cocoa Touch静态库”模板。随便你叫什么都行。您不想勾选“使用自动引用计数”,因为AsiHttpRequest不支持它
  • 为您的库项目选择一个位置(稍后将很重要)
  • 删除由Xcode创建的默认.h-和.m-文件
  • 将AsiHttpRequest文件拖放到项目中
  • 您可以添加AsiHttpRequest所依赖的框架,但无论如何都必须将它们添加到主项目中,因此这是不必要的
  • 尝试构建项目,它应该不会出错
  • 打开主项目
  • 从finder中,将library.proj文件拖到主项目中(在Xcode中,以便它“着陆”到主项目文件中)
  • 库项目现在应该显示在主项目下(仍在XCode中)。它应该是可扩展的,并且您应该能够看到库项目文件。如果没有,请尝试关闭所有打开的项目,然后重新打开主项目
  • 选择主项目,然后选择目标。在“构建阶段-将二进制文件链接到库”下,单击+-符号
  • 在框架列表中,您应该看到您的库项目(称为libname.a之类的项目)。选择该文件
  • 新添加的文件可能在框架列表中显示为红色,不用担心,它仍然可以工作。我猜是个虫子
  • 仍在目标下,请转到生成设置
  • 在标题搜索路径下,将相对搜索路径添加到库.h文件所在的位置。这与主projects.proj文件有关。(例如../some folder/libproject/)
  • 希望您的主项目能够无错误地生成,并且库项目将同时生成,使用与主项目相同的配置
  • 我不知道这是一个好方法,还是有更简单的方法。但是,我喜欢这个,因为我可以在几个项目中使用库项目。如果我想更新库项目,我只需要在一个地方做,其他项目也会更新,因为它们都引用同一个项目

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

  • 转到主项目中目标的构建设置,并将-ObjC添加到名为Other Linker Flags的条目中
  • Edit2:
    我找到了创建通用框架的模板。我还没试过,但我想类似的方法也会奏效

    所以我在不同博客的帮助下自己找到了答案。这个基本的东西应该更琐碎,并且有很好的文档记录。。。但现在我们开始,这就是我为AsiHttpRequest获得一个库所做的:

  • 创建一个新的iOS项目。选择“Cocoa Touch静态库”模板。随便你叫什么都行。您不想勾选“使用自动引用计数”,因为AsiHttpRequest不支持它
  • 为您的库项目选择一个位置(稍后将很重要)
  • 删除由Xcode创建的默认.h-和.m-文件
  • 将AsiHttpRequest文件拖放到项目中
  • 您可以添加AsiHttpRequest所依赖的框架,但无论如何都必须将它们添加到主项目中,因此这是不必要的
  • 尝试构建项目,它应该不会出错
  • 打开主项目
  • 从finder中,将library.proj文件拖到主项目中(在Xcode中,以便它“着陆”到主项目文件中)
  • 库项目现在应该显示在主项目下(仍在XCode中)。它应该是可扩展的,并且您应该能够看到库项目文件。如果没有,请尝试关闭所有打开的项目,然后重新打开主项目
  • 选择主项目,然后选择目标。在“构建阶段-将二进制文件链接到库”下,单击+-符号
  • 在框架列表中,您应该看到您的库项目(称为libname.a之类的项目)。选择该文件
  • 新添加的文件可能在框架列表中显示为红色,不用担心,它仍然可以工作。我猜是个虫子
  • 仍在目标下,请转到生成设置
  • 在标题搜索路径下,将相对搜索路径添加到库.h文件所在的位置。这与主projects.proj文件有关。(例如../some folder/libproject/)
  • 希望您的主项目能够无错误地生成,并且库项目将同时生成,使用与主项目相同的配置
  • 我不知道这是一个好方法,还是有更简单的方法。但是,我喜欢这个,因为我可以在几个项目中使用库项目。如果我想更新库项目,我只有