Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

可以热更swift吗 ? #19

Open
joshiaProgram opened this issue Dec 13, 2021 · 6 comments
Open

可以热更swift吗 ? #19

joshiaProgram opened this issue Dec 13, 2021 · 6 comments
Assignees

Comments

@joshiaProgram
Copy link

OCRunner version: xxxxx

description: xxxxxx

example: xxxxx

OCRunner 版本号: xxx

问题描述: xxx

bug 示例代码: xxx

@SilverFruity
Copy link
Owner

SilverFruity commented Dec 13, 2021

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

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

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

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

@joshiaProgram
Copy link
Author

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

@SilverFruity
Copy link
Owner

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

@SilverFruity
Copy link
Owner

SilverFruity commented Dec 17, 2021

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

@halypot
Copy link

halypot commented Aug 17, 2022

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

@SilverFruity
Copy link
Owner

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

没这个计划额 : (

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants