Xcode是否将注释代码构建到其二进制文件中?

时间:2019-05-20 03:34:27

标签: objective-c swift xcode

我在项目中注释了一些代码,并且不希望将这些代码内置到应用程序的二进制文件中。 Xcode是否将注释代码内置到其二进制文件中?

//Obj-C
//- (void)functionName {
//    
//}

//Swift
//func functionName() {
//
//}

2 个答案:

答案 0 :(得分:2)

对于Swift:摘自“ The Swift Programming Language”(重点是我)中的The Basics

  

使用注释在代码中包含不可执行的文本,作为对自己的注释或提醒。编译代码时,注释会被 Swift编译器忽略

对于Objective-C:Objective-C是C的扩展,C 99 standard在“ 5.1.1.2 Translation phases”(加强调)中指定:

  

3源文件被分解为预处理令牌6)和空白字符序列(包括注释)。源文件不得以部分预处理令牌或部分注释结尾。 每个注释均替换为一个空格字符。保留换行符。实施定义。是否保留除换行符以外的每个非空序列的空白字符还是由一个空格字符替换。

以及“ 6.4.9评论”中的

  

1除了在字符常量,字符串文字或注释中,字符/ *会引入注释。 仅检查此类注释的内容,以识别多字节字符并找到终止其的字符* /。

     

2除了在字符常量,字符串文字或注释中,字符//引入了一个注释,该注释包括所有多字节字符,直到但不包括下一个换行符。 仅检查注释内容以识别多字节字符并找到换行符。

答案 1 :(得分:1)

简短答案:否

详细答案: 每个单独的SDK都有一个编译器,可将代码编译成机器语言(每个命令又称为十六进制代码)。因此,所有编译器都会100%忽略注释,以便可以更快地编译代码。

就Apple的应用而言,它的捆绑方式是,其中打包了所有资产(图像,声音,plist),任何人都可以使用.app文件进行查看。在这种情况下,黑客能够创建完全相同的应用,但图形/声音略有不同,然后重新提交即可。

BINARY UNIX EXECUTABLE文件与这些资产一起,如果在记事本中打开该文件,则将看到乱码(记事本无法读取机器代码)。以下示例是我的应用之一: enter image description here