Metadata macros 元数据宏命令

接下来我们来介绍几个非常有用的编译器指令,分别是 #warning, #error, 和 #pragma。

先来看 #warning,它能自动提交给编译器,让编译器提醒你这里需要修改,你可以这样写:

#warning We should probably fix this.

当代码编译运行的时候,这行就会有 "We should probably fix this." 的提示,相当于在代码里面做了一个标记。在以后的开发维护过程中,你就可以去修改这里的代码。而且除非你删掉它,否则大家都可以看到这条信息。但是这个命令不会阻止编译器编译代码。

如果你真的想让你的代码不再运行,可以使用 #error 方法,来提示一个编译错误:

#error You need to change the value below then remove this line.

你会经常在别人的项目里看到这一行代码,因为它可以阻止作者以外的人不赋值就运行代码。

最后是 #pragma,它有两个主要作用。第一个是来代替注释,你可以用 #pragma mark - Some text here 这种格式写:

#pragma mark - UITableView delegate

这个 UITableView delegate 会出现在 Xcode 的快速跳转栏,帮你在长长的代码里找到你要的那部分。

它的第二种用法就是调整你的运行设置(build settings)。我们可能会用一些很巧妙的方式来写代码,但是 Xcode 会觉得这么写是错的,然后报个错。这就很烦了,比如你要用一个选择器,但是 Xcode 觉得用这个选择器可能会导致内存泄漏,你就可以用 #pragma 把报错信息放到区块里,无视它继续编译:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
// CODE THAT NORMALLY GENERATES WARNINGS HERE
#pragma clang diagnostic pop

用这种方法就可以把报错提示隐藏起来,这个做法不是太好,但是确实很常用。

results matching ""

    No results matching ""