946 votes

Marque #pragma dans Swift?

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? ...

1212voto

Frank Schmitt Points 7914

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.

175voto

Whasssaaahhh Points 736

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

167voto

NatashaTheRobot Points 682

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.

56voto

Nikolai Ruhe Points 45433

Dans le code Objective-C, Xcode détecte les commentaires comme // MARK: - foo qui est un peu plus portable que #pragma . Mais ceux-ci ne semblent pas être pris, aussi (encore?).

Edit: corrigé dans Xcode 6 beta 4.

34voto

Daniel Points 14150

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X