博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC 与 混合开发的问题
阅读量:6721 次
发布时间:2019-06-25

本文共 758 字,大约阅读时间需要 2 分钟。

使用WKScriptMessageHandler 时 遇到问题 , 专门用来 OC调用swift 方法的 项目名-Swift.h文件 , 出现 no name or protocal named 'WKScriptMessageHandler' 没有找到遵守WKScriptMessageHandler 这个协议

解决方法 尝试一

WKScriptMessageHandler 这个协议 ,不写在分类中 要 写在 类声明的 后面

class HomeViewController: UIViewController ,WKScriptMessageHandler{}复制代码

然后系统会自动加上 @objc

@objc(userContentController:didReceiveScriptMessage:) internal func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {}复制代码

然而并没有乱用 , 然后我忽然想到 , 既然协议有问题, 我就去掉 协议就好了啊

OC 的机制是运行时,发送消息 , 人为的写分类只是为了 有智能提示, 可以很快的写出方法而已, 我去掉后 系统自然还是能找到 selector 的 然而还是我太天真 , 添加代理的时候 仍然会报错

完蛋了!!!!

最后的解决方法是 : 我不再使用 prefix 文件

注意

遇到类似 项目名-Swift.h文件出现的错误 一个是 可以将报错的方法 用 filePrivate 不暴露出来, 一个是 检查是否类型不兼容 OC 或可以 @objc 添加这个标识

转载地址:http://oyjmo.baihongyu.com/

你可能感兴趣的文章
Windows.UI.Cred.dll损坏导致不能设置 PIN 密码
查看>>
数组未退化为指针的三种例外
查看>>
了解External Accessory Framework之EAAccessory
查看>>
每天一道算法题(26)——输入字符串表达式求值
查看>>
数据库事务控制注解说明
查看>>
Tomcat相关知识
查看>>
环境变量,env, set
查看>>
SPOJ DIVCNT2
查看>>
Source Insight 3.X utf8支持插件震撼发布
查看>>
网络爬虫之HTTPClient
查看>>
【Highcharts】 绘制饼图和漏斗图
查看>>
list操作 foreach和for的区别
查看>>
Mem, MyString
查看>>
分页存储过程
查看>>
头条的用户内容推荐
查看>>
mongo 手册阅读笔记
查看>>
Domino管理员29个问题
查看>>
9号团队-团队任务4:每日立会(2018-11-29)
查看>>
超高性能的json序列化之MVC中使用Json.Net
查看>>
几款前端性能检测工具
查看>>