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



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



All Articles