Swift & ObjC 桥 - 找不到“WKNavigationDelegate”的协议声明
Posted
技术标签:
【中文标题】Swift & ObjC 桥 - 找不到“WKNavigationDelegate”的协议声明【英文标题】:Swift & ObjC bridge - cannot find protocol declaration for "WKNavigationDelegate" 【发布时间】:2019-07-01 05:02:14 【问题描述】:我看到有很多关于 Swift 和 Objective-C 桥的问题,包括 this one、this one 和 this one...。但到目前为止,它们都没有帮助到我。
添加 WKNavigationDelegate 和 WKScriptMessageHandler 时,编译器失败并显示消息“找不到协议声明”。
项目-Brigding-Header.h
#import <WebKit/WebKit.h>
#include "xyz.h"
我已在target > Build Phases
下将WebKit.framework
添加到Link Binary With Libraries
。并对构建设置进行了更改。
Defines Module : YES
Always Embed Swift Standard Libraries : YES
Install Objective-C Compatibility Header : YES
我是否需要做其他事情才能让它发挥作用?
【问题讨论】:
尝试导入#import为什么在桥接头中使用#import <WebKit/WebKit.h>
?
只需在 swift 文件的顶部添加:
import WebKit
仅适用于使用 Objective-C 编写的应用程序内部类的桥接头。WebKit 是一个模块(在 swift 的术语中)。P.S. 还要从桥接头中删除#import。
【讨论】:
尝试使用来自 Objective-C/C++ 代码的 WKWebkit 相关变量等。但显然导入 WebKit.h 不是解决方案.. 我已经创建了示例项目,并且在导入 WebKit 时没有问题。在 Objective-C++ 中我使用“#import以上是关于Swift & ObjC 桥 - 找不到“WKNavigationDelegate”的协议声明的主要内容,如果未能解决你的问题,请参考以下文章
Xcode中如何快速创建一个Objc与Swift桥接的头文件
UICollectionView:ObjC Apple 示例代码到 Swift 转换(找不到成员)