Est-ce que quelqu'un connaît une chose similaire à #pragma mark, parce que #pragma mark est un préprocesseur C qui n'est pas disponible dans Swift. Alors, y a-t-il un stand? ou dois-je utiliser des commentaires laids? ...
Réponses
Trop de publicités?Viens de parler à un Ingénieur ici lors de la WWDC, et le courant bêta de Xcode ne pas mettre en œuvre l' // MARK:
style, mais je me dit que les futures versions.
Il a également été suggéré que la prise de l'utilisation libérale des extensions de la classe pourrait être une meilleure pratique de toute façon. Depuis les extensions peuvent mettre en place des protocoles, vous pouvez par exemple, mettre tous de votre vue de la table délégué méthodes de vulgarisation et de groupe de votre code à un niveau plus sémantique que l' #pragma mark
est capable de faire.
Edit: résolu dans Xcode 6 bêta 4.
Jusqu'à Xcode 5 de la directive de préprocesseur "#pragma mark " existait.
À partir de Xcode 6, vous devez utiliser '// MARQUE:'
Ces préprocesseur fonctionnalités permettent d'apporter de la structure à la fonction menu déroulant de l'éditeur de code source.
quelques exemples :
// MARK:
-> sera précédée par une séparation horizontale
// MARK: your text goes here
-> met "votre texte ici" en gras dans la liste déroulante
// MARK: - your text goes here
-> met "votre texte ici" en gras dans la liste déroulante, précédée par une séparation horizontale
Pour ceux qui sont intéressés par l'utilisation des extensions et des marques pragma (comme mentionné dans le premier commentaire), voici comment l'implémenter à partir d'un ingénieur Swift:
import UIKit
class SwiftTableViewController: UITableViewController {
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension SwiftTableViewController {
override func numberOfSectionsInTableView(tableView: UITableView?) -> Int {
return 1
}
override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
return 5
}
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
let cell = tableView?.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as UITableViewCell;
cell.textLabel.text = "Hello World"
return cell
}
}
Ce n'est pas nécessairement la meilleure pratique, mais c'est comme ça que vous le faites.
Confirmé avec un ingénieur Apple dans le laboratoire Swift ce matin à la WWDC qu'il n'y a actuellement aucun #pragma ou équivalent pour le moment, ils considèrent cela comme un bug, et il arrivera bientôt, donc je devine beta 2, j'espère.
De toute façon, c'est sur le chemin.
Xcode prend désormais en charge les repères // MARK:, // TODO: et // FIXME pour annoter votre code et les répertorie dans la barre de saut