KissDefault icon indicating copy to clipboard operation
KissDefault copied to clipboard

Does this approach support release mode?

Open gongzhang opened this issue 5 years ago • 2 comments

😊 ~~Does Thread.callStackSymbols return sufficient symbolic information in the release mode?~~

比较感兴趣在 Release 编译下 Thread.callStackSymbols 能够获取到需要到符号信息吗?

gongzhang avatar Jun 17 '20 05:06 gongzhang

不能,需要符号化才行,所以会走进这一行: https://github.com/lexrus/KissDefault/blob/master/KissDefault/KissDefault.swift#L176 但这样取到的字符串也有不确定性,我还没想到什么好办法。 等我在 README 把这个风险写一下。

lexrus avatar Jun 20 '20 03:06 lexrus

谢谢回复!很想弄成这个

在外层用 Mirror 倒是也能拿到成员名字,但在 propertyWrapper 里面好像没有比较优雅的方式能获取这个信息。能想到最简单的就是要求 @Kiss 只能用在一种特定类型的外层对象里面(外层构造时一次性通过 Mirror@Kiss 所需的名字信息灌进去...)。就像 @Published 只能在 ObservableObject 里起作用。不能自由使用还是不够理想。

如果继续想 demangle 的方法,在变量上标注 dynamic 关键字是不是可以在运行时留住符号?这个好像可以诶

另外还想到了 #function 字面值..

gongzhang avatar Jun 20 '20 18:06 gongzhang