Swift: Entendiendo // MARK


137

¿Cuál es el propósito de escribir comentarios en Swift como:

// MARK: This is a comment

Cuando también puedes hacer:

// This is a comment

¿Qué logra el // MARK?

Respuestas:


251

La sintaxis // MARK:y // MARK: -en Swift funciona de manera idéntica a la sintaxis #pragma marky #pragma mark -en Objective-C.

Al usar esta sintaxis (más // TODO:y // FIXME:), puede obtener información adicional para mostrar en la barra de salto rápido.

Considere estas pocas líneas de código fuente:

// MARK: A mark comment lives here.

func isPrime(_ value: UInt) -> Bool { return true }

ingrese la descripción de la imagen aquí

Y como referencia, la barra de salto rápido está en la parte superior de Xcode:

ingrese la descripción de la imagen aquí

Existe principalmente para ayudar con la navegación rápida dentro del archivo.

Tenga en cuenta que el guión ( // MARK: -) hace que aparezca una bonita línea de separación. Considera este MARKcomentario:

// MARK: - A mark comment lives here.

ingrese la descripción de la imagen aquí

La línea de separación gris más oscura justo encima de la opción en negrita en ese menú proviene del tablero.

Además, podemos lograr esta línea de separación sin un comentario simplemente al no tener ningún texto después del guión:

// MARK: -

ingrese la descripción de la imagen aquí

Como se mencionó, // TODO:y los // FIXME:comentarios también aparecerán aquí.

// MARK: - Prime functions

func isPrime(_ value: UInt) -> Bool {
    // TODO: Actually implement the logic for this method
    return true
}

func nthPrime(_ value: UInt) -> Int {
    // FIXME: Returns incorrect values for some arguments
    return 2
}

ingrese la descripción de la imagen aquí

  • Los FIXME obtienen un pequeño ícono de curita que los ayuda a destacarse.
  • El ícono MARK se ve como una tabla de contenido
  • Los íconos TODO se parecen más a una lista de verificación

Al hacer clic en cualquier línea en la barra de salto rápido lo lleva directamente a esa línea en el código fuente.


¿Es esta funcionalidad específica de Swift / Objective-C o Xcode?
ma11hew28

Xcode, presumiblemente. Sin embargo, puedo imaginar fácilmente que otros IDEs exhibirán potencialmente un comportamiento similar.
nhgrif

También puede poner el guión después de su texto, // MARK: /Delegate impl. -para marcar el final de una sección, o por qué no ambos:// MARK: - Attention! -
Andreas

7

MARK simplemente agrega un MARK visual en la barra de salto como este:

ex // MARK: Core Data Stack

ingrese la descripción de la imagen aquí


-5

Siempre puedes usar

// MARK: - Properties
var name: String

// MARK: - Methods
func display() {
}

init(name: String, rollNumber: Int) {

    // TODO: add configuration code
    self.name = name
}

// FIXME: bug XYZ
func fixBug() {

}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.