OCRunner icon indicating copy to clipboard operation
OCRunner copied to clipboard

可以热更swift吗 ?

Open joshiaProgram opened this issue 3 years ago • 6 comments

OCRunner version: xxxxx

description: xxxxxx

example: xxxxx

OCRunner 版本号: xxx

问题描述: xxx

bug 示例代码: xxx

joshiaProgram avatar Dec 13 '21 07:12 joshiaProgram

可以,但有如下 3 个要求:

  1. 热修复的类必须继承自 NSObject 或 NSObject 的子类
  2. 脚本代码中的类也需要遵循条件 1
  3. 传入的参数的类也需要遵循条件 1
  4. 被热修复的 swift 方法必须以 @objc dynamic 开头

其实用的还是 OC 的那一套思路

Demo 中简单展示了热修复 Swfit,可以去看看

SilverFruity avatar Dec 13 '21 09:12 SilverFruity

热更swift方法,不带参数就可以,带上参数就不行,大佬,这个问题怎么处理呀

joshiaProgram avatar Dec 17 '21 07:12 joshiaProgram

把具体的例子发出来吧,晚上我有空看一下

SilverFruity avatar Dec 17 '21 08:12 SilverFruity

最新的 Demo 里面已经包含了 Swift 的传参调用了 需要的注意的是,关于 Swift 方法转换为 OC 方法的坑,第一个参数如果没有使用 _ 来隐藏参数名, OC 方法名应该是 methodName + 'WithArgName' ,如果使用了,则 Swift 和 OC 方法名相同 具体相关转换细节,你可以去查一查资料

SilverFruity avatar Dec 17 '21 15:12 SilverFruity

大神,有没有计划做一个swift的编译器呀,直接使用swift进行热更。

halypot avatar Aug 17 '22 06:08 halypot

大神,有没有计划做一个swift的编译器呀,直接使用swift进行热更。

没这个计划额 : (

SilverFruity avatar Aug 17 '22 14:08 SilverFruity