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 导入。任何提示或建议都将不胜感激。
我试着关注这个来源
,但它对我不起作用。这很令人沮丧。
这是导致错误的 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 获取,因此请检查自己)。
我有把伞header叫
MyApp-Swift.h
我在伞 header.
中导入了以下 class"AFHTTPSessionManager.h"
我在构建阶段制作了伞 header public 并且我还确保将 Define modules 设置为 yes。
但是,在我的 swift 框架中,我仍然收到以下错误
Use of undeclared type 'AFHTTPSessionManager'
我不知道为什么会这样。我以为 swift 会自动获取我的 Objective-C 导入。任何提示或建议都将不胜感激。
我试着关注这个来源
,但它对我不起作用。这很令人沮丧。
这是导致错误的 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 获取,因此请检查自己)。