iOS文檔註釋

来源:http://www.cnblogs.com/Mike-zh/archive/2016/01/18/5136885.html
-Advertisement-
Play Games

Eclipse和IntelliJ IDEA系的IDE都有自動生成文檔註釋的功能,Xcode雖然安裝了VVDocument,但是仍然感覺註釋的功能不是很完善,於是今天整理了一下書寫文檔註釋的一些用法。首先要說的就是文檔註釋提取的工具:主要是介紹HeaderDoc和appleDoc1.我們平常長按opt...


Eclipse和IntelliJ IDEA系的IDE都有自動生成文檔註釋的功能,Xcode雖然安裝了VVDocument,但是仍然感覺註釋的功能不是很完善,於是今天整理了一下書寫文檔註釋的一些用法。
首先要說的就是文檔註釋提取的工具:主要是介紹HeaderDoc和appleDoc
1.我們平常長按option鍵同時滑鼠點擊,彈出的文檔就是Xcode會自動使用HeaderDoc生成的。如圖:
quik look查看HeaderDoc生成的文檔
2.appleDoc只為Objective-C服務,可以在文檔書寫完成之後使用appledoc生成docSet,能生成和Apple一個風格的文檔,如下所示:
appleDoc生成的docSet效果圖
然後要說的就是一些編寫文檔註釋的規範了:(註意本文值討論文檔註釋,僅僅作為解釋說明的註釋不會涉及)

單行註釋

共有以下幾種:
行前註釋:(經常用作對屬性的聲明)

///

行後註釋:(一般對屬性、成員變數的聲明、代碼說明等)

/**< 
/*!<
///< 
//!< 

使用的方法如下:

/// 姓名
@property (nonatomic, copy) NSString *name;

@property (nonatomic, copy) NSString *phone; /**< 電話 */
@property (nonatomic, copy) NSString *address; /*!< 住址 */
@property (nonatomic, assign) float height; ///< 身高
@property (nonatomic, assign) NSUInteger age; //!< 年齡

多行註釋

常用以下幾種:(經常用在類聲明和方法聲明之前)

/// line1
/// line2

/**
 * line1
 * line2
 */

/*! line1
 *  line2
 */

示例如下:

/*!
 * Comment
 */
@interface Comment : NSObject

/**
 *  an exmaple
 *
 *  @param obj input parameter
 */
- (void)commonMethod:(id)obj;

/// exmaple 2
/// @param obj input parameter
- (void)commonMethod2:(id)obj;

@end

註釋Tag

在寫方法的文檔註釋的時候多用一些參數說明, 這時候會用到@param標簽,除此之外還有其他標簽

下麵是在所有的方法聲明前使用的標簽:
標簽 Example 含義
@param @param myValue The value to process. 對方法的參數描述
@result @result Returns 1 on success, 0 on failure. 對返回值的描述
@return @result Returns 1 on success, 0 on failure. 和@result.相同
@templatefield @templatefield base_type The base type to store in the linked list. Each of the function’s template fields (C++).
@throws @throws bananas 對拋出異常的描述
@var @var myVar
Description goes here
對局部變數或方法的描述


還有一些可以在類型定義,方法聲明和頭文件中都可以使用的tag
標簽 Example 含義
@abstract @abstract write the track to disk 簡短描述,不要超過1行
@apiuid @apiuid //my_ref/doc/magic 重寫與這個註釋綁定的 API UID (apple_ref),也就是重寫這個註釋的唯一標識, 使用不當會帶來標識衝突等問題
@attribute
@attributelist
@attributeblock
@attribute My Attribute Name Value goes here. 添加一個自定義的不一定符合規則的tag
@availability @availability 10.3 and later 適用版本描述
@brief @brief write the track to disk 簡短描述
@discussion @discussion This is what this function does. @some_other_tag 詳細描述
@indexgroup @indexgroup Name of Group 提供放在發佈頁面的組織信息,如果沒有使用這個tag,會使用來自內部的class或者頭文件的組織信息
@internal @internal 標記為內部文檔,如果生成文檔時在命令行設置了 --document-internal,這個文檔才會被生成
@link @link //apple_ref/c/func/function_name link text goes here @/link
或者
@link function_name link text goes here @/link
或者
@link function_name @/link
插入一個API ref所在的鏈接
@namespace @namespace BSD Kernel 對所處的命名空間的說明
@see @see apple_ref Title for link 參數與@link相同 如果API reference已經在see或seealso中出現這個tag會被忽略
@seealso @seealso apple_ref Title for link 參數與@link相同 如果API reference已經在see或seealso中出現這個tag會被忽略
@textblock @textblock My text goes here @/textblock @textblock和@/textblock之間出現的tag全都是文檔內容
@updated @updated 2003-03-14 上次更新的時間


另外有一些關於整個文件的一些文檔註釋tag:
標簽 Example 含義
@author @author Anon E. Mouse 作者
@charset @charset utf-8 生成HTML文件使用的編碼,同@encoding
@compilerflag @compilerflag -lssl 使用時需要添加的編譯指令
@copyright @copyright Apple 版權,這個值會覆蓋在配置文件中的值,同時不能被分為多行
@CFBundleIdentifier @CFBundleIdentifier org.mklinux.driver.test 所在的包名、程式的BundleID
@encoding @encoding utf-8 為生成的HTML文件設置編碼
@flag @flag -lssl
The SSL Library
參見@compilerflag
@ignore @ignore API_EXPORT 告訴HeaderDoc刪除指定的標記
@ignorefuncmacro @ignorefuncmacro __P 告訴HeaderDoc不要包含指定的方法巨集
@language @language c++ 已經廢棄的tag。指定當前的開發語言
@meta @meta robots index,nofollow
或者
@meta http-equiv="refresh" content="0;http://www.apple.com"
將要添加到每個頁面的meta tag,可以用這兩種形式中的一種指定 @meta 或 @meta ,但是不能分成多行
@preprocinfo @preprocinfo This header uses the DEBUG macro to enable additional debugging. 描述與processor相關的巨集(-DDEBUG, for example)指定之後的行為)
@related @related Sixth cousin of Kevin Bacon. 指出與這個頭文件關聯的另一個頭文件,可以使用多個@related標簽
@unsorted @unsorted 指出你不希望HeaderDoc幫你對頭文件的內容排序
@version @version 2.3.1 文檔適用的版本
@whyinclude @whyinclude Because it was there. 指出你為什麼要包含一些頭文件

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 線程通信、ActivityThread及Thread類是理解Android線程管理的關鍵。 線程,作為CPU調度資源的基本單位,在Android等針對嵌入式設備的操作系統中,有著非常重要和基礎的作用。本小節主要從以下三個方面進行分析: 《Android線程管理(一)——線程通信》 《Android線...
  • 一,效果圖。二,工程圖。三,代碼。RootViewController.h#import //加入頭文件#import "DCPathButton.h"@interface RootViewController : [email protected]#i...
  • KOTLIN開發語言文檔(官方文檔)第二章、基本概念
  • Listview控制項不像其他安卓控制項那種直接拖拽到界面上就能用,而是採用類似J2EE中的MVC模型的方式使用,需要通過適配器將某種樣式的數據或控制項添加到其上而使用.MVC模型實現原理是 數據模型M(Model) 存放數據,利用控制器C (Controller)將數據顯示在視圖V (View)上。利用...
  • 本文轉載於:http://bijian1013.iteye.com/blog/2166855package com.bijian.study;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IO...
  • 一、1xx消息 這一類型的狀態碼,代表請求已經接受,需要繼續處理。 這類響應是臨時響應,只包含狀態行和某些可選的響應頭信息,並以空行結束。 由於HTTP/1.0協議中沒有定義任何1xx狀態碼,所以除非在某些試驗條件下,伺服器禁止向此類客戶端發送1xx響應。 這些狀態碼代表的響應都是信息性的,...
  • 最近在模擬器上調試發現獲取位置坐標信息的時候會報錯,錯誤信息: didFailWithError: Error Domain=kCLErrorDomain Code=0 “The operation couldn’t be completed. (kCLErrorDomain error 0.)”。...
  • 真機測試的過程中,出現這種Bug解決方案:手機裡面已經有了這個項目,刪除重新運行即可。
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...