TTPatch开发问题记录

本文详细介绍了TTPatch在iOS热更新和热修复中的应用,包括关系方法注册和方法覆盖的设计方案,JS中声明Objective-C Class的方法,以及在实际开发中遇到的内存、参数传递、方法添加等问题及其解决方案。
摘要由CSDN通过智能技术生成

TTPatch

热修复、热更新、JS代码动态下发、动态创建类

https://github.com/yangyangFeng/TTPatch


关系方法注册和方法覆盖设计方案

  • Oc 不存在的方法,无需注册到Oc中,只在Js端保留方法信息,供Js端代码直接调用
  • Oc 已存在方法,需要先获取 original IMP,将原方法 IMP 替换成我们的消息转发,然后重新添加一个以 original IMP 为实现,*** 为前缀的新方法。

JS中声明Oc中的Class设计方案

首先我们要搞清楚JS中引入新Class

1、Class能被识别(非undefined)
2、Class能调用方法

第一步让我们看看怎么做,如何让Oc Class能被JS识别呢?

我们可以将Oc Class注册到global中,这样我们的Class就能被JS识别,而不是undefined类型.

Class能识别了,那么在JS中如何才能调用Oc的方法而不报错呢?

这个问题其实很简单,我的解决方案将 impoet Class包装成类似于NSObjectJSObject

class JSObject {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值