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/

相关文章:

iOS8:可以将 "tableview.rowHeight = UITableViewAutomaticDimension"用于静态单元格吗?

iphone - 在 UIView 和 subiview 的 CALayer 上结合动画?

ios - 使用转换渲染 UIImageView 作为 CALayer 进行视频编辑

objective-c - iOS 设备上的钥匙串(keychain)可以保存与 NSString 不同的东西吗?

MFMailComposeViewController 的导航栏中的 ios 11 问题

ios - 向 uipageviewcontroller 添加分页

ios - 内存泄漏还是正常行为?

ios - 在每行 uicollectionview 中适合给定数量的单元格

iOS : Can we access app's documents folder if device is jailbroken

ios - 在 Xcode 中打开我的 React Native 项目,我的代码在哪里?