KissDefault
KissDefault copied to clipboard
Does this approach support release mode?
😊
~~Does Thread.callStackSymbols return sufficient symbolic information in the release mode?~~
比较感兴趣在 Release 编译下 Thread.callStackSymbols 能够获取到需要到符号信息吗?
不能,需要符号化才行,所以会走进这一行: https://github.com/lexrus/KissDefault/blob/master/KissDefault/KissDefault.swift#L176 但这样取到的字符串也有不确定性,我还没想到什么好办法。 等我在 README 把这个风险写一下。
谢谢回复!很想弄成这个
在外层用 Mirror 倒是也能拿到成员名字,但在 propertyWrapper 里面好像没有比较优雅的方式能获取这个信息。能想到最简单的就是要求 @Kiss 只能用在一种特定类型的外层对象里面(外层构造时一次性通过 Mirror 把 @Kiss 所需的名字信息灌进去...)。就像 @Published 只能在 ObservableObject 里起作用。不能自由使用还是不够理想。
如果继续想 demangle 的方法,在变量上标注 dynamic 关键字是不是可以在运行时留住符号?这个好像可以诶
另外还想到了 #function 字面值..