#pragma mark的用法

来源:互联网 发布:张国荣是小鲜肉 知乎 编辑:程序博客网 时间:2024/05/16 06:17
(A) #pragma mark是Objective -C语言的一部份吗?
答:不是。它纯粹是Xcode的工具,对程式一点影响都没有。若不想深入了解,直接跳过即可。

(B) #pragma mark的功用是什麼?
答:pragma这字在字典上查不到,近似字pragmatic的意义是活跃的、爱管閒事的、实用主义的。pragma mark实质上是让Xcode在其Function Menu内打上一些记号,Function Menu就是图一中两个星号之下的那一块,Function Menu列出程式档内的class (左方有c字样)、function(左方有f字样)、method(左方有m字样),这是Xcode让使用者可以快速查看一个程式档案裡所有class、method、function的工具,pragma mark则是在Function Menu内作记号(mark),帮助阅读程式。

#pragma mark有两种型式,
一是 #prama mark - (如图一程式第3行)
在Function Menu会出现一条直线,如图一的两个星号之间,@interface HelloController之上的那一条细线。

当comment掉第3行后,Function Menu上的那一条细线就没有了(见图二)。

或是 #pragma mark UITableViewDataSource Methods (以 UITableViewDataSource Methods 為例 ) ((如图一程式第16行)

在Function Menu内会出现#pragma mark后的所有字(并且以boldface呈现),如图一的两个+号之间的" UITableViewDataSource Methods "。

当comment掉第16行后,Function Menu上的UITableViewDataSource Methods就没有了(见图二)。
可以看一下图二方块围住的Function Menu和图一有何差异。是否用#pragma mark的图一清楚很多,

有两条直线分隔HelloController和SampleAppDelegate两个class。
在HelloController class中,又分出init、 UITableViewDataSource Methods、 UITableViewDelegate Methods。

这就是#pragma mark的功能及用法 。

图一:


图二: