Dans Xcode 8 beta et Swift 3, lorsque vous avez une méthode qui prend une fermeture comme paramètre, par exemple:
func foo(bar: (String) -> Void) {
bar("Hello, world")
}
Comment documentez-vous les paramètres de la fermeture? Par exemple, si j'ai écrit ceci:
/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
func foo(bar: (String) -> Void) {
bar("Hello, world")
}
Ensuite, l'aide rapide ressemble à ceci:
Je voudrais savoir quelle est la syntaxe qui me permettra d'écrire du texte pour remplacer "Pas de description". Merci beaucoup!
Pour autant que je sache, vous ne pouvez documenter les paramètres de fermeture que si vous les étiquetez:
/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
/// - parameter theString: A string to use
func foo(bar: (theString: String) -> Void) {
bar(theString: "Hello, world")
}
C'est loin d'être idéal: cela vous oblige à utiliser une étiquette d'argument lorsque vous appelez la fermeture, et s'il y a des conflits de dénomination, il ne semble pas possible de faire la distinction entre les deux.
Edit : Comme l'a souligné @Arnaud, vous pouvez utiliser _
pour éviter d'avoir à utiliser l'étiquette de paramètre lors de l'appel de la fermeture:
/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
/// - parameter theString: A string to use
func foo(bar: (_ theString: String) -> Void) {
bar("Hello, world")
}
En fait, c'est la seule approche valable dans Swift 3 car les étiquettes de paramètres ne font plus partie du système de type (voir SE-0111 ).