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

标签 ios objective-c xcode

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

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

我有一个框架“MobileCommunicationLibrary.framework”,它使用了很多非 ARC 的东西,比如 1) 子类 NSAutoReleasePool 的类 2) 使用保留、释放

这个框架有一个头文件“MobileCommunicationLibrary.h”,我需要在 ARC 应用程序中导入它,还有许多其他头文件,MobileCommunicationLibrary.h 具有依赖性,如“VNSAutoReleasePool”。

现在我正在开发一个 iOS 应用程序“TestIQLNative”。这有类“AppDelegate.h”和“AppDelegate.m”,它们使用像弱属性这样的 ARC 东西并合成它。此类必须使用 ARC 编译或编译器标志必须是“-fobjc-arc”

此外,我需要将 导入 AppDelegate.h 以使用框架提供的方法。

当我导入时,我收到很多与保留、释放、NSAutoReleasePool 等相关的错误,因为它们不是 ARC。

我无法为 AppDelegate.m 设置“-fno-objc-arc”,因为那样会报错,提示合成仅在 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

最佳答案

您不将该链接器标志放入 View Controller 的类中,而是在您正在使用的导入库中设置该标志。您可以通过以下方式完成此操作:

  1. 在 Xcode 中,在 [TARGETS] 下选择您的项目。
  2. 选择 [构建阶段] 选项卡。
  3. 在“编译源”下找到库的头文件/类文件。
  4. 为其添加编译器标志。

希望这对您有所帮助。

关于ios - 如何在 ARC iOS 应用程序中使用非 ARC 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195421/

相关文章:

ios - cocos2D CCLayer 或 CCLayerColor setOpacity

ios - 如何使用 UISegementedControl -> Swift 将不同的数据类从 Parse 加载到 uitableview 中?

iphone - 如何制作与 substringFromIndex 一起使用的全局整数?

objective-c - 在 Cocoa 应用程序中动态加载自定义插件(库)

ios - 使用 UItableView Swift 4 的自定义单元格时的 SIGBRT

ios - Google Analytics - iOS 安装跟踪

ios - UITableViewCell 框架仅在滚动后更新

objective-c - 如何将十六进制转换为RGB

ios - swift : println() doesn't show anything into "View Device Logs" in "Devices" tab

iphone - 无法在 UIImageView 中加载 2 个单独的图像序列