如何在ARC iOS应用程序中使用非ARC框架

时间:2014-11-28 20:20:25

标签: ios objective-c xcode

我看到了一些对确切问题的回复。大多数回复要求包括" -fno-objc-arc"。

让我试着解释一下这个问题。

我有一个框架" MobileCommunicationLibrary.framework"使用很多非ARC的东西,如1)子类NSAutoReleasePool 2)使用retain,release

这个框架有一个头文件" MobileCommunicationLibrary.h"我需要在ARC应用程序和很多其他头文件中导入,其中MobileCommunicationLibrary.h具有依赖性,例如" VNSAutoReleasePool。

现在我正在开发一个iOS应用程序" TestIQLNative"。这有类" AppDelegate.h"和#34; AppDelegate.m"它使用像弱物一样的ARC东西并合成它。这个类必须使用ARC编译或编译标志必须是" -fobjc-arc"

另外,我需要导入< MobileCommunicationLibrary / MobileCommunicationLibrary.h>到AppDelegate.h使用框架提供的方法。

当我导入时,我收到很多与retain,release,NSAutoReleasePool等相关的错误,因为它们不是ARC。

我不能把" -fno-objc-arc"对于AppDelegate.m,因为这会产生错误,抱怨只能在ARC中合成弱属性。

有人可以帮忙吗?

<错误和我的构建阶段>

Error and my compile source screenshot

<头文件中的一个错误,它在头文件中使用非ARC代码>

One of the errors in the header file which uses non ARC code in header files

<框架头文件,包括Appdelegate.h中的一个头文件>

Framework header files and including one header file in Appdelegate.h

<应用程序>

所需的框架头文件

Framework Header file required by application

1 个答案:

答案 0 :(得分:2)

您没有将该链接器标记放入View控制器的类中,而是在您正在使用的导入库上设置标记。你通过以下方式实现这一目标:

  1. 在Xcode中选择[TARGETS]下的项目。
  2. 选择[Build Phases]选项卡。
  3. 在'编译源'下找到图书馆的标题/类文件。
  4. 为其添加编译器标志。
  5. 希望这有帮助。