¿Marca #pragma en Swift?

Resuelto Arbitur asked hace 10 años • 20 respuestas

En Objective C, puedo usarlo #pragma markpara marcar secciones de mi código en el navegador de símbolos. Dado que se trata de un comando de preprocesador de C, no está disponible en Swift. ¿Existe un sustituto para esto en Swift o tengo que usar comentarios desagradables?

Arbitur avatar Jun 03 '14 21:06 Arbitur
Aceptado

Puedes usar// MARK:


También se ha debatido que el uso liberal de extensiones de clases podría ser una mejor práctica de todos modos. Dado que las extensiones pueden implementar protocolos, puede, por ejemplo, colocar todos los métodos delegados de vista de tabla en una extensión y agrupar su código en un nivel más semántico del que #pragma markes capaz.

Frank Schmitt avatar Jun 04 '2014 12:06 Frank Schmitt

Hasta Xcode 5 #pragma markexistía la directiva de preprocesador.

A partir de Xcode 6, debes usar// MARK:

Estas características del preprocesador permiten darle cierta estructura al cuadro desplegable de funciones del editor de código fuente.

algunos ejemplos :

// MARK:

-> estará precedido por un divisor horizontal

// MARK: your text goes here

-> pone 'tu texto va aquí' en negrita en la lista desplegable

// MARK: - your text goes here

-> pone 'tu texto va aquí' en negrita en la lista desplegable, precedido por un divisor horizontal

actualización: captura de pantalla agregada porque algunas personas todavía parecen tener problemas con esto:

ingrese la descripción de la imagen aquí

Ronny Webers avatar Oct 16 '2014 15:10 Ronny Webers

Para aquellos que estén interesados ​​en usar extensiones frente a marcas pragma (como se menciona en el primer comentario), aquí se explica cómo implementarlo desde un ingeniero 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
    }

}

Tampoco es necesariamente la mejor práctica, pero así es como puedes hacerlo si lo deseas.

NatashaTheRobot avatar Jun 05 '2014 20:06 NatashaTheRobot