编译后的Objective-c / Swift方法和变量名称

时间:2016-09-29 23:27:48

标签: objective-c swift llvm

很明显,在编译之后,objective-c方法名称完全相同,因为cocoa已经在开发中具有高可读性,但在运行时也是如此。但它如何应用于变量名称?编译后只有方法名称相同? 它在Swift中的样子如何?

2 个答案:

答案 0 :(得分:1)

Swift破坏运行时所需的名称以避免命名冲突。可以修剪运行时不需要的名称(取决于您的编译器设置)。

有一些工具可用于解除生成的名称。如需进一步阅读,请参阅: https://mikeash.com/pyblog/friday-qa-2014-08-15-swift-name-mangling.html

FWIW,Objective-C编译器也会破坏名称,但是swift的修改更复杂,允许方法重载等。

答案 1 :(得分:0)

我已经检查了Objective-c和Swift,所有方法和全局变量都非常类似于代码中使用的方法。最好的方法是不要使用明显的方法,或者像我一样编写简单的混淆脚本。事实上@Berik粘贴的文章很有意思。好主意是使用自定义编译器,但它带来了一些更复杂的麻烦。