[英]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.