Xcode自動生成的文件注釋來導(dǎo)出API文檔

Xcode自帶的導(dǎo)出API文檔的方法遭笋。但作為崇拜貓神的一員的我,使用的是貓神的VVDocumenter插件,驚訝的發(fā)現(xiàn)這個插件生成的注釋并不能支持導(dǎo)出正確的文檔。于是只好苦逼的加班加點把整個項目的注釋統(tǒng)統(tǒng)修改了一遍埃碱,最近在簡書上看到小碼哥的一篇修改Xcode自動生成的文件注釋的文章,于是想到了結(jié)合這種方法來減輕我們導(dǎo)出文檔的難度酥泞。這里并不是說第三方插件生成的注釋不好,但是對于有相同需求的碼農(nóng)們可以參考我的這篇文章啃憎。廢話少說芝囤,先上文檔效果圖

- 導(dǎo)出注釋標準

/*!頭文件基本信息。這個用在每個源代碼文件的頭文件的最開頭辛萍。

@header 這里的信息應(yīng)該與該源代碼文件的名字一致

@abstract 關(guān)于這個源代碼文件的一些基本描述

@author Sindri Lin (作者信息)

@version 1.00 2012/01/20 Creation (此文檔的版本信息)

*/

/*!類信息悯姊。此注釋用在類聲明的開頭。

@class

@abstract 這里可以寫關(guān)于這個類的一些描述贩毕。

*/

/*!

@propertyproperty的相關(guān)注釋悯许。

@abstract 這里可以寫關(guān)于這個Property的一些基本描述。

*/

/*!

@method函數(shù)(方法)的相關(guān)注釋辉阶。

@abstract 這里可以寫一些關(guān)于這個方法的一些簡要描述

@discussion 這里可以具體寫寫這個方法如何使用先壕,注意點之類的瘩扼。如果你是設(shè)計一個抽象類或者一個共通類給給其他類繼承的話,建議在這里具體描述一下怎樣使用這個方法垃僚。

@param text 文字 (這里把這個方法需要的參數(shù)列出來)

@param error 錯誤參照

@result 返回結(jié)果

*/

/*!

@enumenum的相關(guān)注釋集绰。

@abstract 關(guān)于這個enum的一些基本信息

@constant HelloDocEnumDocDemoTagNumberPopupView PopupView的Tag

@constant HelloDocEnumDocDemoTagNumberOKButton OK按鈕的Tag

*/

/*!

@categorycategory的相關(guān)注釋。

@abstract NSString的Category

*/

/*!

@protocolprotocol的相關(guān)注釋

@abstract 這個HelloDoc類的一個protocol

@discussion 具體描述信息可以寫在這里

*/

上面的注釋很明顯跟我們平時的注釋不一樣谆棺,如果要嚴格按照這個格式進行注釋栽燕,估計要累死一群碼農(nóng)。但是改淑,上面的頭文件碍岔、類聲明和類別聲明我們都能通過修改Xcode本身的設(shè)置來實現(xiàn)創(chuàng)建文件時就將注釋文檔設(shè)置完畢。

- 修改Xcode自身生成的文件注釋

首先右鍵Xcode -> 選項 -> 在Finder中打開 -> 右鍵 -> 顯示包內(nèi)容

Contents -> Developer -> Platforms -> iPhoneOS.platform -> Developer -> Library -> Xcode -> Templates -> File Templates

到了這個目錄下朵夏,是不是覺得子目錄的名字有些熟悉呢蔼啦?

選中Source -> Cocoa Touch Class.xctemplate

這個目錄下面有很多后綴名為Objective-C跟Swift的文件夾,這么多怎么看呢侍郭?我們先打開NSObjectObjective-C下面的___FILEBASENAME___

上面那綠油油的注釋就是我們要修改的東西了询吴,注意它的格式,跟我們創(chuàng)建文件的頭部注釋是一樣的

這里用到了幾個系統(tǒng)的預(yù)處理宏定義亮元,包括__FILENAME__猛计、__PROJECTNAME__、__FULLUSERNAME__爆捞、__DATE__和__COPYRIGHT__奉瘤,分別表示的是文件名、項目名稱煮甥、系統(tǒng)用戶全稱盗温、當前日期和版權(quán)聲明,這些宏定義可以用在我們修改之后的注釋中成肘。我把它修改成下面這樣:

退出Xcode重新運行卖局,然后創(chuàng)建新類,我們就會發(fā)現(xiàn)新的類文件格式:

這樣我們需要的頭文件注釋文檔已經(jīng)自動生成了双霍,而且是一次操作砚偶,永久受益。大家可以如法炮制洒闸,在@interface的注釋模板上加上規(guī)范類信息的注釋文檔染坯,就可以直接創(chuàng)建類的注釋文檔。

- 如何導(dǎo)出文檔

修改好了Xcode的自動生成注釋格式丘逸,接下來就是最重要的導(dǎo)出API文檔操作单鹿。首先在選擇項目,然后add new target -> Other -> aggregate -> 命名 -> 創(chuàng)建完畢

選擇新創(chuàng)建好的target -> add New Run Script Phase

在建好的run script中填寫下面的信息

# shell script goes here

mkdir -p headerDoc

find (這里填寫導(dǎo)出文檔的絕對路徑) \*.h -print | xargs headerdoc2html -o headerDoc

gatherheaderdoc headerDoc

exit 0

選擇使用新建的target運行

然后運行成功后到填寫的路徑下就可以看到導(dǎo)出的API文檔文件夾

學會導(dǎo)出API文檔無疑可以極大的提高我們的代碼的可讀性深纲,而在很多重要的場合下仲锄,代碼的可讀性甚至要高于代碼的質(zhì)量

文/Sindri的小巢(簡書作者)

原文鏈接:http://www.reibang.com/p/d0c7d9040c93

著作權(quán)歸作者所有劲妙,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),并標注“簡書作者”昼窗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末是趴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子澄惊,更是在濱河造成了極大的恐慌唆途,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掸驱,死亡現(xiàn)場離奇詭異肛搬,居然都是意外死亡,警方通過查閱死者的電腦和手機毕贼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門温赔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鬼癣,你說我怎么就攤上這事陶贼。” “怎么了待秃?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵拜秧,是天一觀的道長。 經(jīng)常有香客問我章郁,道長枉氮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任暖庄,我火速辦了婚禮聊替,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘培廓。我一直安慰自己惹悄,他們只是感情好,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布肩钠。 她就那樣靜靜地躺著俘侠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔬将。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天央星,我揣著相機與錄音霞怀,去河邊找鬼。 笑死莉给,一個胖子當著我的面吹牛毙石,可吹牛的內(nèi)容都是我干的廉沮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼徐矩,長吁一口氣:“原來是場噩夢啊……” “哼滞时!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滤灯,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤坪稽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鳞骤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窒百,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年豫尽,在試婚紗的時候發(fā)現(xiàn)自己被綠了篙梢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡美旧,死狀恐怖渤滞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情榴嗅,我是刑警寧澤妄呕,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站录肯,受9級特大地震影響趴腋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜论咏,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一优炬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厅贪,春花似錦蠢护、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贯吓,卻和暖如春懈凹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悄谐。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工介评, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓们陆,卻偏偏與公主長得像寒瓦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坪仇,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 最近工作需要和其他公司進行項目交接的時候杂腰,原以為像往常一樣直接交付源代碼就行了,誰知道客戶公司需要我們提供API文...
    sindri的小巢閱讀 9,497評論 46 60
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理椅文,服務(wù)發(fā)現(xiàn)喂很,斷路器,智...
    卡卡羅2017閱讀 134,702評論 18 139
  • 我總是問自己,你有什么優(yōu)勢芹橡? 可是最終毒坛,我找不到答案,因為我覺得自己沒有優(yōu)勢林说,我很自卑煎殷,很渺小,我總是想如果我不是...
    7191fea0ba31閱讀 266評論 0 0
  • 建輸閱讀 174評論 0 1
  • 眷戀是有多戀 就是可以蜜汁甜 不經(jīng)意間 上揚的嘴角淋漓盡現(xiàn) 眷戀是有多甜 就是隨時可以忘記空間和時間 一不留神 腳...
    蕭娜閱讀 322評論 24 6