Swift: Entendendo // MARK

137

Qual é o objetivo de escrever comentários no Swift como:

// MARK: This is a comment

Quando você também pode fazer:

// This is a comment

O que isso // MARKalcança?

Marcus Leon
fonte

Respostas:

251

A sintaxe // MARK:and // MARK: -no Swift funciona de forma idêntica à sintaxe #pragma marke #pragma mark -no Objective-C.

Ao usar esta sintaxe (mais // TODO:e // FIXME:), você pode obter algumas informações extras para aparecer na barra de salto rápido.

Considere estas poucas linhas de código fonte:

// MARK: A mark comment lives here.

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

insira a descrição da imagem aqui

E, para referência, a barra de salto rápido está no topo do Xcode:

insira a descrição da imagem aqui

Ele existe principalmente para ajudar na navegação rápida dentro do arquivo.

Observe que o traço ( // MARK: -) faz com que uma boa linha de separação seja exibida. Considere este MARKcomentário:

// MARK: - A mark comment lives here.

insira a descrição da imagem aqui

A linha separadora cinza mais escura logo acima da opção em negrito nesse menu vem do traço.

Além disso, podemos alcançar essa linha separadora sem um comentário, simplesmente não tendo texto após o traço:

// MARK: -

insira a descrição da imagem aqui

Como mencionado, // TODO:e os // FIXME:comentários também aparecerão aqui.

// 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
}

insira a descrição da imagem aqui

  • Os FIXMEs recebem um pequeno ícone de band-aid que os ajuda a se destacar.
  • O ícone MARK parece um sumário
  • Os ícones TODO parecem mais com uma lista de verificação

Clicar em qualquer linha na barra de salto rápido leva você diretamente para essa linha no código-fonte.

nhgrif
fonte
Essa funcionalidade é específica para Swift / Objective-C ou Xcode?
Ma11hew28 07/07/19
Xcode, presumivelmente. Embora eu possa facilmente imaginar que outros IDEs exibirão um comportamento semelhante.
Nhgrif 08/07/19
Você também pode colocar o hífen após o texto,, // MARK: /Delegate impl. -para marcar o final de uma seção, ou por que não os dois:// MARK: - Attention! -
Andreas
7

MARK simplesmente adiciona uma MARK visual na barra de salto assim:

ex // MARK: Core Data Stack

insira a descrição da imagem aqui

Stefan Salatic
fonte
-5

Você sempre pode 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() {

}
Aditya
fonte