Xcode 5のコードのクイックヘルプ

コメントからドキュメントを取得するためのクイックヘルプ:



以前は、 appledoc (またはアナログ)をインストールし、 .docsetコンパイルしてインストールする必要があり.docset 。 これで、 ドキュメンタリーのコメントを書くだけで、クイックヘルプにすぐに表示されます。
サポートされている構文に関する公式ドキュメントはまだありません(少なくとも私は見つかりませんでした)が、 HeaderDocDoxygenの間で何かが使用されています。

1)

コメントの最初の段落は自動補完で使用され、クイックヘルプでは全員が表示されます。
 /** Brief description. Brief description continued. Details follow here. */ - (BOOL)doSomethingWithArgument:(NSString *)argument; 




2)

もちろん、標準タグ@code @warning@code @warning@code他のいくつかのタグ( @code @warning@code @warning@code @warning@codeなど)がサポートされています。
 /** Brief description. Brief description continued. Details follow here. @note I am a note! @warning Not thread safe! @param argument Some string. @return YES if operation succeeded, otherwise NO. */ - (BOOL)doSomethingWithArgument:(NSString *)argument; 



3)

個々のメソッドだけでなく、クラス全体をドキュメント化できます:
 /** Example class to show the new cool XCode 5 feature. Usage example: @code QHExample *example = [QHExample new]; BOOL result = [example doSomethingWithArgument:@"test"]; @endcode */ @interface QHExample : NSObject 



4)

文書化プロパティ:
 /// Description for exampleProperty. @property (nonatomic) int exampleProperty; 



5)

非推奨のメソッドは自動的に決定されます:
 /** This method is deprecated! @see '-anotherMethod' */ - (void)someMethod __attribute__((deprecated("use '-anotherMethod' instead."))); 



6)

機能もサポートされています。
 /** A function that always returns 42. @param fArg Some float argument. @return 42. */ int function_42(float fArg); 


しかし、残念ながらマクロはそうではありません。

7)

enumサポートがあります:
 /** ROUChunkType description. */ enum ROUChunkType { /// Data chunk. ROUChunkTypeData = 0, /// Acknowledgement chunk. ROUCHunkTypeAck = 1 }; 

ただし、 推奨される NS_ENUMおよびNS_OPTIONSサポートはありません。
つまり あなたが書く場合:
 /** ROUChunkType description. */ typedef NS_ENUM(uint8_t, ROUChunkType){ /// Data chunk. ROUChunkTypeData = 0, /// Acknowledgement chunk. ROUCHunkTypeAck = 1 }; 

次に、クイックヘルプおよびオートコンプリートの定数の説明が利用可能になりますが、 ROUChunkType場合は利用できません。


8)

構造タイプの場合、状況はより良いです。タイプ自体については、オートコンプリートに説明はありませんが、クイックヘルプには、フィールドにはthisとthatの両方があります。
 /** Chunk header description. */ typedef struct { /// Chunk type. enum ROUChunkType type; /// Chunk length. uint16_t length; } ROUChunkHeader; 


9)

ただし、ブロックタイプのドキュメントはうまく機能します。
 /** A block with one argument returning BOOL. @param arg Block's argument. @return YES. */ typedef BOOL (^QHBlock)(id arg); 



10)

さらに、コメントはインターフェイスだけでなく、変数も含めて実装でもサポートされています。
 - (double)perimeter{ /// The number π, the ratio of a circle's circumference to its diameter. double pi = M_PI; return 2 * pi * self.r; } 



おわりに

合計すると、ドキュメンタリーのコメントを書くもう1つの理由になりました。 さらに、 コードスニペットを使用する場合、これはまったく時間がかかりません。 たとえば、メソッドを文書化するには、スニペットを作成できます。
 /** <#Brief#> <#Description#> @param <#Name#> <#Info#> @param <#Name#> <#Info#> @return <#Returns#> */ 

それをdocmethod docmethod掛けます:

次に、 docmethod入力するdocmethod自動補完により適切なテンプレートが自動的に提案されます。

Source: https://habr.com/ru/post/J192310/


All Articles