繁体   English   中英

如何在 Objective-c 应用程序中使用 Swift 框架

[英]How to use Swift framework in Objective-c app

我想在我的 Objective-C IOS 应用程序中使用 Swift 库。 我将 Swift 库设置为一个单独的项目,它在 XCode 中构建良好。 我可以将生成的 Swift 框架从 Swift 项目拖到我的 Objective-C 项目目标的“框架、库和嵌入内容”列表中。 它带有“嵌入和签名”label。

苹果在这里的描述: https://developer.apple.com/documentation/swift/importing-swift-into-objective-c指出

通过导入 Xcode 生成的 header 文件,您可以在项目的 Objective-C 代码中使用在 Swift 中声明的类型。 This file is an Objective-C header that declares the Swift interfaces in your target, and you can think of it as an umbrella header for your Swift code. 您无需执行任何特殊操作即可创建生成的标头 — 只需导入它即可在 Objective-C 代码中使用其内容。

当我查看 swift .framework文件时,我可以在那里看到 header 文件。 但是当我将它导入我的 Objective-c.m 文件之一时,编译器会说找不到该文件。 我已经尝试过

#import "Starscream-Swift.h"

#import <Starscream/Starscream-Swift.h>

句法。

如何说服 XCode 使用 Swift 框架中的 header 文件? 我是否需要将 header 复制到某个地方,也许? 我还需要考虑使用 Objective-c IOS 应用程序中的 Swift 库吗?

我正在使用 XCode 版本 13.4.1。 顺便说一句,我尝试使用的 Swift 库是 Starstream。

当您自己的项目混合了 Objective-C 和 Swift 类时,需要 Xcode 生成的 header 文件。 在处理框架时,您可以像这样包含框架的保护伞 header:

#import "SwiftFramework/SwiftFramework.h"

或者,更可取的是,您使用@import表达式导入它:

@import SwiftFramework;

请注意,只有暴露于 Objective-C 运行时的部分可以从此框架访问(即从NSObject或其他一些 Cocoa 类继承的公共/开放类)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM