Objective-c / Swift 编译后的方法和变量名称
Objective-c / Swift method and variables names after compilation
很明显 objective-c 方法名称在编译后完全相同,因为 cocoa 在开发中和运行时都具有很高的可读性。但是它如何应用于变量名呢?编译后只有方法名称相同?
它在 Swift 中的样子如何?
Swift 破坏运行时所需的名称以避免命名冲突。可以删除运行时不需要的名称(取决于您的编译器设置)。
有一些工具可以对生成的名称进行分解。如需进一步阅读,请参阅此处:
https://mikeash.com/pyblog/friday-qa-2014-08-15-swift-name-mangling.html
FWIW,Objective-C 编译器也会对名称进行修改,但是 swift 的修改更加复杂,以允许方法重载等
正如我检查过的 Objective-c 和 Swift 所有方法和全局变量都与代码中使用的非常相似。最好的方法是不要使用明显的混淆脚本,或者像我一样只编写简单的混淆脚本。 @Berik 在这里粘贴的文章确实很有趣。好主意是使用自定义编译器,但它带来了一些更复杂的麻烦。
很明显 objective-c 方法名称在编译后完全相同,因为 cocoa 在开发中和运行时都具有很高的可读性。但是它如何应用于变量名呢?编译后只有方法名称相同? 它在 Swift 中的样子如何?
Swift 破坏运行时所需的名称以避免命名冲突。可以删除运行时不需要的名称(取决于您的编译器设置)。
有一些工具可以对生成的名称进行分解。如需进一步阅读,请参阅此处: https://mikeash.com/pyblog/friday-qa-2014-08-15-swift-name-mangling.html
FWIW,Objective-C 编译器也会对名称进行修改,但是 swift 的修改更加复杂,以允许方法重载等
正如我检查过的 Objective-c 和 Swift 所有方法和全局变量都与代码中使用的非常相似。最好的方法是不要使用明显的混淆脚本,或者像我一样只编写简单的混淆脚本。 @Berik 在这里粘贴的文章确实很有趣。好主意是使用自定义编译器,但它带来了一些更复杂的麻烦。