iOS Swift 框架:如何将 Objective C 代码正确导入 swift 框架?

iOS Swift framework: How to import Objective C code into swift framework properly?

我有把伞header叫

MyApp-Swift.h

我在伞 header.

中导入了以下 class "AFHTTPSessionManager.h"

我在构建阶段制作了伞 header public 并且我还确保将 Define modules 设置为 yes。

但是,在我的 swift 框架中,我仍然收到以下错误

Use of undeclared type 'AFHTTPSessionManager'

我不知道为什么会这样。我以为 swift 会自动获取我的 Objective-C 导入。任何提示或建议都将不胜感激。

我试着关注这个来源

https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_82

,但它对我不起作用。这很令人沮丧。

这是导致错误的 swift 代码。

import Foundation

   class MyApp {
        private var manager: AFHTTPSessionManager?
   }

事实是,桥接 header 不适用于框架目标。解决方案是创建模块映射目标来为所需的 ObjC 框架构建模块映射。

这是 CommonCrypto 的示例:https://whosebug.com/a/42852743/1840136;在你的情况下,区别应该是脚本行

header "${SDKROOT}/usr/include/CommonCrypto/CommonCrypto.h"

将替换为 AFNetworking headers 的路径(我不确定您是将第 3 方库放在项目中还是从 pods 获取,因此请检查自己)。