#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];
// Do any additional setup after loading the view.
}
@end
效果:
#pragma mark -
#pragma mark -
和#pragma mark
也有区别。相比于#pragma mark
,#pragma mark -
在Xcode代码实体部分、头顶函数列表、右侧Minimap上均会出现分割线。这说明,不加“ - ”的#pragma mark
只起到注释作用,而加了“ - ”的#pragma mark
将整段代码进行了分组,起到了逻辑组织的作用。
实际效果
效果图1 |
---|
效果图2 |
---|
可以看出,一些类(尤其是一些控制器类)可能很长,Minimap、函数菜单可以方便我们代码导航。而加入编译器指令#pragma mark
相比于一般的反斜杠注释//text
,对代码进行逻辑组织更有效果。在实际的coding中,两种注释交叉使用可以使整段代码的可读性和逻辑性增强,也方便了日后的查找与修改。
one more thing
#pragma mark -
的“-”后面要加空格。#pragma mark
纯粹是Xcode的工具,对程序一点影响都没有,是为了方便程序员阅读代码的格式。- 可以将
#pragma mark
放在Xcode提供的Code Snippet内,便于究极偷懒。