Swift는 설명서 생성을 지원합니까?
많은 언어는 생성기를 허용하기 위해 설명서 주석을 지원합니다(예:javadoc또는 doxygen)은 동일한 코드를 구문 분석하여 코드 문서를 생성합니다.
스위프트에는 이와 같은 형식의 문서 주석 기능이 있습니까?
문서 주석은 Xcode에서 기본적으로 지원되며, 빠른 도움말에서 스마트하게 렌더링된 문서를 생성합니다( 기호 클릭 시 팝업 표시 및 빠른 도움말 관리자 모두에서).
기호 문서 주석은 이제 리치 놀이터 주석에서 사용되는 마크다운 구문을 기반으로 하므로 놀이터에서 할 수 있는 많은 작업을 이제 소스 코드 문서에 직접 사용할 수 있습니다.
구문에 대한 자세한 내용은 Markup Formating Reference를 참조하십시오.풍부한 운동장 주석 및 기호 문서화에 대한 구문 간에 몇 가지 불일치가 있습니다. 이는 문서에서 지적한 사항입니다(예: 블록 인용문은 운동장에서만 사용할 수 있습니다).
다음은 현재 기호 문서 주석에 사용되는 구문 요소의 예와 목록입니다.
업데이트
Xcode 7 베타 4 ~ 추가됨"- Throws: ...빠른 도움말에 매개 변수 및 반환 설명과 함께 표시되는 최상위 목록 항목입니다.
Xcode 7 베타 1 ~ Swift 2의 구문에 대한 몇 가지 중요한 변경 사항 - 현재 Markdown(놀이터와 동일)에 기반한 문서 주석.
Xcode 6.3(6D570) ~ 들여쓰기 텍스트는 이제 코드 블록으로 포맷되고 이후 들여쓰기는 중첩됩니다.이러한 코드 블록에 빈 줄을 남기는 것은 가능하지 않은 것 같습니다. 그렇게 하려고 하면 텍스트가 문자가 포함된 마지막 줄 끝에 고정됩니다.
Xcode 6.3 베타 ~ 인라인 코드를 백틱을 사용하여 문서 주석에 추가할 수 있습니다.
Swift 2의 예
/// Text like this appears in "Description".
///
/// Leave a blank line to separate further text into paragraphs.
///
/// You can use bulleted lists (use `-`, `+` or `*`):
///
/// - Text can be _emphasised_
/// - Or **strong**
///
/// Or numbered lists:
///
/// 7. The numbers you use make no difference
/// 0. The list will still be ordered, starting from 1
/// 5. But be sensible and just use 1, 2, 3 etc…
///
/// ---
///
/// More Stuff
/// ==========
///
/// Code
/// ----
///
/// Use backticks for inline `code()`. Indentations of 4 spaces or more will create a code block, handy for example usage:
///
/// // Create an integer, and do nothing with it
/// let myInt = 42
/// doNothing(myInt)
///
/// // Also notice that code blocks scroll horizontally instead of wrapping.
///
/// Links & Images
/// --------------
///
/// Include [links](https://en.wikipedia.org/wiki/Hyperlink), and even images:
///
/// 
///
/// - note: That "Note:" is written in bold.
/// - requires: A basic understanding of Markdown.
/// - seealso: `Error`, for a description of the errors that can be thrown.
///
/// - parameters:
/// - int: A pointless `Int` parameter.
/// - bool: This `Bool` isn't used, but its default value is `false` anyway…
/// - throws: A `BadLuck` error, if you're unlucky.
/// - returns: Nothing useful.
func doNothing(int: Int, bool: Bool = false) throws -> String {
if unlucky { throw Error.BadLuck }
return "Totally contrived."
}

Swift 2의 구문(마크다운 기준)
주석 스타일
둘다요.///와 (으)ㄹ/** */(블록) 스타일 주석은 문서 주석을 생성하는 데 지원됩니다.저는 개인적으로 시각적인 스타일을 선호합니다./** */주석, Xcode의 자동 들여쓰기는 선행 공백을 제거할 때 복사/붙여넣기를 할 때 이 주석 스타일의 형식을 망칠 수 있습니다.예:
/**
See sample usage:
let x = method(blah)
*/
붙여넣을 때 코드 블록 들여쓰기가 제거되고 더 이상 코드로 렌더링되지 않습니다.
/**
See sample usage:
let x = method(blah)
*/
으로 이한이저주로는을 사용합니다.///이 답변의 나머지 예제에 사용할 것입니다.
블록 요소
제목:
/// # My Heading
또는
/// My Heading
/// ==========
부제목:
/// ## My Subheading
또는
/// My Subheading
/// -------------
수평 규칙:
/// ---
정렬되지 않은(글머리글) 목록:
/// - An item
/// - Another item
사용할 수도 있습니다.+또는*순서가 지정되지 않은 목록의 경우 일관성이 있어야 합니다.
순서가 지정된(번호가 지정된)
/// 1. Item 1
/// 2. Item 2
/// 3. Item 3
코드 블록:
/// for item in array {
/// print(item)
/// }
4개 이상의 공백 들여쓰기가 필요합니다.
인라인 요소
강조(이탤릭체):
/// Add like *this*, or like _this_.
강함(굵음):
/// You can **really** make text __strong__.
별표)를 함께 할 수 .*및을 사용합니다._에 있습니다.). 같은 요소에 있습니다.
인라인 코드:
/// Call `exampleMethod(_:)` to demonstrate inline code.
링크:
/// [Link Text](https://en.wikipedia.org/wiki/Hyperlink)
이미지:
/// 
URL은 웹 URL("http://" 사용) 또는 절대 파일 경로 URL(상대 파일 경로를 가져올 수 없는 것 같습니다)일 수 있습니다.
링크 및 이미지의 URL을 인라인 요소에서 분리하여 모든 URL을 관리 가능한 하나의 위치에 유지할 수도 있습니다.
/// A [link][1] an an ![image][2]
///
/// ...
///
/// [1]: http://www.example.com
/// [2]: http://www.example.com/image.jpg
키워드
Xcode는 Markdown 형식 외에도 빠른 도움말에 눈에 띄게 표시할 다른 마크업 키워드를 인식합니다.이러한 마크업 키워드는 대부분 형식을 취합니다.- <keyword>: 사항:parameter여기에는 콜론 앞에 매개 변수 이름도 포함됩니다. 여기서 키워드 자체는 대문자/소문자 조합으로 작성할 수 있습니다.
기호 섹션 키워드
다음 키워드는 도움말 뷰어의 "설명" 섹션 아래 및 "신고됨" 섹션 위에 중요한 섹션으로 표시됩니다.포함된 경우, 고객의 주문은 아래 표시된 대로 수정되며, 고객이 원하는 순서대로 의견에 포함할 수도 있습니다.
Markup Formating Reference의 Symbol Section Commands 섹션에서 섹션 키워드 및 해당 용도에 대한 전체 문서 목록을 참조하십시오.
/// - parameters:
/// - <#parameter name#>:
/// - <#parameter name#>:
/// - throws:
/// - returns:
또는 다음과 같은 방법으로 각 파라미터를 작성할 수 있습니다.
/// - parameter <#parameter name#>:
기호 설명 필드 키워드
다음 키워드 목록은 도움말 뷰어의 "설명" 섹션 본문에 굵은 제목으로 표시됩니다.이들은 "설명" 섹션의 나머지 부분과 마찬가지로 사용자가 작성한 순서대로 나타납니다.
에리카 사둔의 이 훌륭한 블로그 기사에서 발췌한 전체 목록.또한 마크업 형식 지정 참조의 기호 설명 필드 명령 섹션에서 완전하게 문서화된 키워드 목록과 사용법을 참조하십시오.
귀인:
/// - author:
/// - authors:
/// - copyright:
/// - date:
가용성:
/// - since:
/// - version:
경고:
/// - attention:
/// - important:
/// - note:
/// - remark:
/// - warning:
개발 상태:
/// - bug:
/// - todo:
/// - experiment:
구현 품질:
/// - complexity:
기능 의미론:
/// - precondition:
/// - postcondition:
/// - requires:
/// - invariant:
상호 참조:
/// - seealso:
설명서 내보내기
HTML 문서(Apple 자체 문서를 모방하도록 설계됨)는 오픈 소스 명령줄 유틸리티인 Jazzy를 사용하여 인라인 문서에서 생성할 수 있습니다.
$ [sudo] gem install jazzy
$ jazzy
Running xcodebuild
Parsing ...
building site
jam out ♪♫ to your fresh new docs in `docs`
다음은 Xcode 6에서 swift code를 문서화하는 데 사용할 수 있는 몇 가지 사항입니다.벌레가 많고 콜론에 민감하지만 없는 것보다는 낫습니다.
class Foo {
/// This method does things.
/// Here are the steps you should follow to use this method
///
/// 1. Prepare your thing
/// 2. Tell all your friends about the thing.
/// 3. Call this method to do the thing.
///
/// Here are some bullet points to remember
///
/// * Do it right
/// * Do it now
/// * Don't run with scissors (unless it's tuesday)
///
/// :param: name The name of the thing you want to do
/// :returns: a message telling you we did the thing
func doThing(name : String) -> String {
return "Did the \(name) thing";
}
}
위의 내용은 형식이 지정된 숫자 목록, 글머리 기호, 매개 변수 및 반환 값 문서에서 예상하는 대로 빠른 도움말로 렌더링됩니다.
이 중 어느 것도 문서화되지 않았습니다. 레이더를 기록하여 이들을 도와줍니다.
Xcode 8의 새로운 기능은 다음과 같은 방법을 선택할 수 있습니다.
func foo(bar: Int) -> String { ... }
그런 다음 +를 누르거나 Xcode의 "Editor" 메뉴에서 "Structure" - "Add documentation"을 선택하면 다음 주석 템플릿이 생성됩니다.
/// <#Description#>
///
/// - parameter bar: <#bar description#>
///
/// - returns: <#return value description#>
Swift에는 "///" 댓글 처리가 포함되어 있습니다(아직 전부는 아닐 수도 있음).
다음과 같은 내용을 작성합니다.
/// Hey!
func bof(a: Int) {
}
그런 다음 func 이름과 voila를 옵션으로 클릭합니다 :)
ShakedManChild가 사람들에게 해결책을 제공했다는 것을 확인할 수 있습니다.
설명 아래에 빈 줄이 있는지 확인하십시오!




예. 기본 공통(Obj-C 등가물로 그것을 위한 스니펫을 만들었습니다.
목표-C:
/**
@brief <#Short description - what it is doing#>
@discussion <#Description#>
@param <#paramName#> <#Description#>.
@return <#dataType#> <#Description#>.
*/
스위프트
/**
<#Short inline description - what it is doing#>
<#Description#>
:param: <#paramName#> <#Description#>.
:returns: <#dataType#> <#Description#>.
*/
Xcode Editor에서 -> Structure -> Documentation 추가.
만약 당신이 스위프트만 사용한다면, Jazzy는 볼 가치가 있습니다.
https://github.com/realm/jazzy
Xcode 바이너리에서 흥미로운 것을 발견했습니다.끝이 있는 파일.swiftdoc확실히 문서가 있습니다. 이 파일에는 Swift UIKit / Foundation API용 문서가 포함되어 있기 때문입니다. 안타깝게도 Xcode의 Documentation 뷰어에서 사용하기 위한 독점 파일 형식인 것 같습니다.
Jazzy는 아름다운 애플 스타일의 문서를 생성하는 데 도움을 줄 수 있습니다.다음은 신속한 사용 및 구성 방법에 대한 세부 정보가 포함된 샘플 앱입니다.
https://github.com/SumitKr88/SwiftDocumentationUsingJazzy
아마도 애플 독이나 잘 알려지지 않은 애플의 자체 헤더 독에 눈독을 들이는 것이 좋은 생각일 것입니다.10.9 Mavericks 터미널(headerdoc2html)에서 HeaderDoc 힌트를 여전히 찾을 수 있습니다.
최신 "What's New In Xcode"*(아직도 NDA에 포함되어 있는지 확실하지 않음) *이 링크는 HeaderDoc에 대한 정보가 포함된 Xcode 5.1 버전을 가리킵니다.
Xcode 5.0부터는 Doxygen 및 HeaderDoc 구조화 주석이 지원됩니다.
언급URL : https://stackoverflow.com/questions/24047991/does-swift-have-documentation-generation-support
'prosource' 카테고리의 다른 글
| 에서 업그레이드한 후 대상을 다시 지정합니다.Net Framework 4.5 - 4.6.1 (0) | 2023.05.28 |
|---|---|
| "while :" vs "while true" (0) | 2023.05.28 |
| Python asyncio와의 동시성을 제한하는 방법은 무엇입니까? (0) | 2023.05.28 |
| C# 배열에서 중복 항목을 제거하려면 어떻게 해야 합니까? (0) | 2023.05.28 |
| Node.js + Nginx - 이제 어떻게 됩니까? (0) | 2023.05.28 |
