?
#pragma
从理论上讲,以#pragma 开头的代码是一条编译器指令,是一个特定于程序或编译器的指令。它们不一定适用于其它编译器或其它环境。如果编译器不能识别该指令,则会将其忽略。
如使用#pragma clang diagnostic ignored "-W警告名" ,可以在Xcode中防止编译器警告:警告抑制语法
而本文要讨论的#pragma mark ,在Xcode中起到分割代码逻辑的功能。 ? ?
#pragma mark
#pragma mark
#pragma mark 将你的代码分成一个个逻辑区块,在coding时方便逻辑构建,在以后对项目进行修改时也能便于查找和导航代码。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
#pragma mark viewDidLoad
- (void)viewDidLoad {
[super viewDidLoad];
}
@end
效果:
#pragma mark -
#pragma mark - 和#pragma mark 也有区别。相比于#pragma mark ,#pragma mark - 在Xcode代码实体部分、头顶函数列表、右侧Minimap上均会出现分割线。这说明,不加“ - ”的#pragma mark 只起到注释作用,而加了“ - ”的#pragma mark 将整段代码进行了分组,起到了逻辑组织的作用。
实际效果
可以看出,一些类(尤其是一些控制器类)可能很长,Minimap、函数菜单可以方便我们代码导航。而加入编译器指令#pragma mark 相比于一般的反斜杠注释//text ,对代码进行逻辑组织更有效果。在实际的coding中,两种注释交叉使用可以使整段代码的可读性和逻辑性增强,也方便了日后的查找与修改。 ? ?
one more thing
#pragma mark - 的“-”后面要加空格。#pragma mark 纯粹是Xcode的工具,对程序一点影响都没有,是为了方便程序员阅读代码的格式。- 可以将
#pragma mark 放在Xcode提供的Code Snippet内,便于究极偷懒。
|