美文网首页
混合开发时Swift路由跳转传参闭包给Objective-C

混合开发时Swift路由跳转传参闭包给Objective-C

作者: 小随记 | 来源:发表于2021-05-26 15:41 被阅读0次

混合开发项目中,Swift页面跳转到Objective-C页面时,使用路由方式跳转
当传参为闭包时候,swift的闭包不会被OC识别,需要对闭包转化成能被OC识别的Block。
Swift代码

//闭包
let block : (_ isShow: Bool) -> Void = {[weak self]_ in
            print("+++=+++++++++++")
  }
//把闭包转成可被OC识别的Block
  let compatibilityBlock = block as @convention(block) (Bool) -> Void
  let compatibilityBlockObject = unsafeBitCast(compatibilityBlock, to: AnyObject.self)
//路由
Router.share()?.run(withURL: "XXXXXXX", params: ["block":compatibilityBlockObject])

Objective-C代码


//定义block
typedef void(^agreeFinishBlock)(Bool isShow);

//Block赋值
agreeFinishBlock block =  compatibilityBlockObject;

//调用Block
if(compatibilityBlockObject){
     compatibilityBlockObject(false);
}

相关文章

  • 混合开发时Swift路由跳转传参闭包给Objective-C

    混合开发项目中,Swift页面跳转到Objective-C页面时,使用路由方式跳转当传参为闭包时候,swift的闭...

  • Next.js 跳转传参并接收接参

    介绍路由传参,接参使用方法 传参 + 跳转页面接收参数 动态路由传参 + 跳转页面接收参数创建动态路由在pag...

  • Vue实战第二天

    路由组件传参 动态路由传参 静态路由传参 函数传参htm5 history 模式 设置通用路由,找不到页面跳转自定...

  • Vue-Router

    1. 路由配置 默认路由跳转 在 new Router时可用的配置参数: 2.路由传参 Vue路由传参的几种方式 ...

  • vue路由传参及参数接收

    项目开发过程中经常出现,点击路由跳转页面的情况,这时候就用到了路由传参1,从a页面跳转到b页面a页面传参 b页面接...

  • Object-C 与Swift互调

    Swift和Objective-C 混编 Object-C与Swift混合开发 注意: OC调用Swift时,需要...

  • vue-router

    路由安装 路由配置 路由跳转 路由传参-param使用params传参只能使用name进行引入http://loc...

  • vue中组件3种编程式路由跳转传参

    路由传参 1、路由配置传参(刷新页面不会丢失参数,url会携带参数) A组件跳转B组件传参A组件 路由配置 B组件...

  • 八、Flutter路由

    目录一、基本路由二、基本路由传参三、命名路由四、命名路由传参五、替换路由六、返回到根路由 一、基本路由 跳转到De...

  • Vue3.0实现todolist之路由传参(query模式传参和

    上一篇写道路由跳转这里写一写路由跳转的时候是如何进行路由传参的首页start的传参问题开始页引进ref先定义几个参...

网友评论

      本文标题:混合开发时Swift路由跳转传参闭包给Objective-C

      本文链接:https://www.haomeiwen.com/subject/ebmksltx.html