Ios Swift Objective-C运行时类命名
我注意到在objective-c运行时重命名了Swift类。因此,如果我在swift中有一个名为Ios Swift Objective-C运行时类命名,ios,objective-c,class,runtime,swift,Ios,Objective C,Class,Runtime,Swift,我注意到在objective-c运行时重命名了Swift类。因此,如果我在swift中有一个名为ViewController的类,当我执行object\u getClass(self)、self-beingViewController时,我的应用程序的名称是testruntime14viewcontroller。我注意到这种模式或格式:\u TtC$$AppName$$ClassName,$是一个随机数。我不知道这些数字是从哪里来的。如果有人能告诉我swift在运行时如何命名它的类,这对我真的很
ViewController
的类,当我执行object\u getClass(self)
、self-beingViewController
时,我的应用程序的名称是testruntime14viewcontroller
。我注意到这种模式或格式:\u TtC$$AppName$$ClassName
,$是一个随机数。我不知道这些数字是从哪里来的。如果有人能告诉我swift在运行时如何命名它的类,这对我真的很有帮助。它们不是随机的。它们是以下值的长度。这与普通C++名称的相似,并支持标识符,这些标识符可以在它们中具有相当的任意字符,而不需要一些新的分隔符。它还可以使它们更容易解析,特别是在C语言中
在这种特殊情况下,它是
\u TtC
然后是“一个十一字符的模块名”,然后是模块名,然后是“一个十四字符的类名”和类名。我假设C
是类。不确定Tt(可能是“类型”)。以下三节将对其进行说明
class MyClass {
class MySubClass {
func myFunc() {
class MySubSubClass {
}
}
}
}
在这里,您可以找到一些将该描述解析为易于使用的属性和数组的方法
更新:Demangle现在已转换为swift。您可以在这里找到它:我想它可能是“类型到类”谢谢,并且到Demanling代码的链接是一个很好的奖励。这个答案值得更多的投票!