¿Marca #pragma en Swift?
En Objective C, puedo usarlo #pragma mark
para 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?
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 mark
es capaz.
Hasta Xcode 5 #pragma mark
existí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:
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.