簡體   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