ドキュメントについてお尋ねする場合は、インラインコードコメントからドキュメントを作成するためのツールJazzyをチェックアウトすることをお勧めします。コードコメントからスタンドアロンのドキュメンテーションを作成するのはいい方法です。これはAppleの規約と一貫しています。
基本的な使用方法は次のとおりです。のは、次のようにあなたには、いくつかのクラスが定義されていることを想像してみましょう:
注意が、それだけであなたの引数のラベルを示しています:
/// Some incredibly useful class
public class MyClass {
/// Performs some foo-like operation
///
/// - Parameter bar: The bar parameter.
public class func foo(_ bar: String) {
// do something
}
/// Some bazzy operation
///
/// - Parameter qux: The bar parameter.
public func baz(_ quz: String) {
// do something
}
}
ジャジー意志がどのように見えるのドキュメントを生成します。あなたは1をタップした場合、それはタイプの方法だとかどうか、それはパラメータ名が何であるかを示しています、それはあなたがドキュメントを話していた明確ではありませんでした元の質問で
ので、私コードで遭遇する慣習について論じた。その答えは以下の通りです。
スウィフトでは、インスタンスとプロパティタイプの両方で.
です。
これは単に.
の先行する問題です。それが型の場合は、型のプロパティ/メソッドです。考えてみましょう:これはFoo
型に対して、typeプロパティbar
を参照している
let b = Foo.bar
。しかし、先行するものが.
が型のインスタンスであれば、インスタンスのプロパティ/メソッドを扱うことになります。検討:この場合
let b = Baz()
let q = baz.qux
、qux
はBaz
のインスタンスのプロパティを参照している、Baz
タイプのb
ため、インスタンス。問題の曇りのリスクが
、上記パターンへの警告は、スイフトの「セレクタ」(古いObjective-Cのパターン)の使用です。この場合、target
の選択は、selector
が何を参照するかを示します。 target
のインスタンスを指定すると、selector
はインスタンスメソッドを参照しています。 target
の型を指定すると、selector
は型メソッドを参照しています。私たちがしている場合、これらの二つの例の両方で、
Timer.scheduledTimer(timeInterval: 1, target: ViewController.self, selector: #selector(ViewController.foo), userInfo: nil, repeats: false)
注:以下は型メソッドを呼び出しますに対し
Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.foo), userInfo: nil, repeats: false)
:したがって、この例では、selector
は、インスタンスメソッドを参照しています同じクラス内で対話する場合、一般的にクラス名を省略します。タイプが別のクラスにある場合は、そのタイプを明示的に参照するだけで済みます。しかし、target
/selector
というパターンは、別のやや異なった、Class.method
の構文を使用していることを示すだけであるためです。
ただし、この例外は一意です。一般的なパターンはxxx.yyy
です。xxx
がある種のインスタンスであれば、yyy
はインスタンスのプロパティ/メソッドですが、xxx
が何らかのタイプの名前であれば、yyy
はタイププロパティ/メソッドです。 append(_:)
として
append(_ newElement:)
の言及は全く異なるものです。これは、最初のパラメータnewElement
に外部ラベルがないため、ラベルなしで呼び出された場合に過ぎません。 array.append(object)
。だからappend(_:)
はそれがどのように呼び出されたかを示す表記法です(ここでは内部パラメータ名が何であるか気にしません)。append(_ newElement:)
は実装方法です(メソッド内でこのパラメータを参照する方法を知りたいところです) 。
まあ、これは私が探していた答えはありませんでしたが、とにかくレッスンをありがとうございました。 :-)私はドキュメンテーションの目的で表記法について疑問に思っています。もっと明確にするために質問を更新しました。 – ma11hew28