Xcode自動生成的文件注釋來導出API文檔

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

- 導出注釋標準

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

@header 這里的信息應該與該源代碼文件的名字一致

@abstract 關于這個源代碼文件的一些基本描述

@author Sindri Lin (作者信息)

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

*/

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

@class

@abstract 這里可以寫關于這個類的一些描述。

*/

/*!

@propertyproperty的相關注釋。

@abstract 這里可以寫關于這個Property的一些基本描述。

*/

/*!

@method函數(方法)的相關注釋。

@abstract 這里可以寫一些關于這個方法的一些簡要描述

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

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

@param error 錯誤參照

@result 返回結果

*/

/*!

@enumenum的相關注釋。

@abstract 關于這個enum的一些基本信息

@constant HelloDocEnumDocDemoTagNumberPopupView PopupView的Tag

@constant HelloDocEnumDocDemoTagNumberOKButton OK按鈕的Tag

*/

/*!

@categorycategory的相關注釋。

@abstract NSString的Category

*/

/*!

@protocolprotocol的相關注釋

@abstract 這個HelloDoc類的一個protocol

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

*/

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

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

首先右鍵Xcode -> 選項 -> 在Finder中打開 -> 右鍵 -> 顯示包內容

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

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

選中Source -> Cocoa Touch Class.xctemplate

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

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

這里用到了幾個系統的預處理宏定義,包括__FILENAME__、__PROJECTNAME__、__FULLUSERNAME__、__DATE__和__COPYRIGHT__,分別表示的是文件名、項目名稱、系統用戶全稱、當前日期和版權聲明,這些宏定義可以用在我們修改之后的注釋中。我把它修改成下面這樣:

退出Xcode重新運行,然后創建新類,我們就會發現新的類文件格式:

這樣我們需要的頭文件注釋文檔已經自動生成了,而且是一次操作,永久受益。大家可以如法炮制,在@interface的注釋模板上加上規范類信息的注釋文檔,就可以直接創建類的注釋文檔。

- 如何導出文檔

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

選擇新創建好的target -> add New Run Script Phase

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

# shell script goes here

mkdir -p headerDoc

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

gatherheaderdoc headerDoc

exit 0

選擇使用新建的target運行

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

學會導出API文檔無疑可以極大的提高我們的代碼的可讀性,而在很多重要的場合下,代碼的可讀性甚至要高于代碼的質量

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

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

著作權歸作者所有,轉載請聯系作者獲得授權,并標注“簡書作者”。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 最近工作需要和其他公司進行項目交接的時候,原以為像往常一樣直接交付源代碼就行了,誰知道客戶公司需要我們提供API文...
    sindri的小巢閱讀 9,518評論 46 60
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 我總是問自己,你有什么優勢? 可是最終,我找不到答案,因為我覺得自己沒有優勢,我很自卑,很渺小,我總是想如果我不是...
    7191fea0ba31閱讀 276評論 0 0
  • 建輸閱讀 175評論 0 1
  • 眷戀是有多戀 就是可以蜜汁甜 不經意間 上揚的嘴角淋漓盡現 眷戀是有多甜 就是隨時可以忘記空間和時間 一不留神 腳...
    蕭娜閱讀 330評論 24 6