gpt4 book ai didi

ios - 如何声明继承的内置协议(protocol),以便可以从另一个框架或应用程序导入它?

转载 作者:行者123 更新时间:2023-11-29 05:46:50 26 4
gpt4 key购买 nike

我无法从不同的应用程序/框架调用此 swift 文件,因为出现以下错误。

"Unknown class name 'WKScriptMessageHandler'"

这是我在框架中声明的 mySwift.swift。

@objcMembers public class HSIWKJavascriptBridge : NSObject, WKScriptMessageHandler{
public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "test", let messageBody = message.body as? String {
print(messageBody)
}
}
}

swift 编译器在编译时自动生成此代码。

@class WKUserContentController;
@class WKScriptMessage;

SWIFT_CLASS("_TtC5MyFwk21HSIWKJavascriptBridge")
@interface HSIWKJavascriptBridge : NSObject <WKScriptMessageHandler>
- (void)userContentController:(WKUserContentController * _Nonnull)userContentController didReceiveScriptMessage:(WKScriptMessage * _Nonnull)message;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

现在错误是 WKScriptMessageHandler 没有像

这样自动声明
@class WKUserContentController;
@class WKScriptMessage;

因此我无法使用该框架。

最佳答案

我在项目设置中尝试使用相同的 HSIWKJavascriptBridge swift 类。我能够在 Obj-C 文件中使用此类,没有任何问题。

由于WKScriptMessageHandler是一个协议(protocol),因此它不会像其他类一样被前向声明(WKUserContentControllerWKScriptMessage )在 swift 编译器生成的代码中。

请确保在您的 Swift 文件中添加 import WebKit

关于ios - 如何声明继承的内置协议(protocol),以便可以从另一个框架或应用程序导入它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56073056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com