Swift: zrozumienie // MARK

137

Jaki jest cel pisania komentarzy w Swift jako:

// MARK: This is a comment

Kiedy możesz też:

// This is a comment

Co to daje // MARK?

Marcus Leon
źródło

Odpowiedzi:

251

// MARK:I // MARK: -składni w funkcji Swift identycznie #pragma marki #pragma mark -składni w celu C.

Używając tej składni (plus // TODO:i // FIXME:), możesz uzyskać dodatkowe informacje, które pojawią się na pasku szybkiego przeskoku.

Rozważ kilka wierszy kodu źródłowego:

// MARK: A mark comment lives here.

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

wprowadź opis obrazu tutaj

Dla porównania pasek szybkiego przeskoku znajduje się na górze w Xcode:

wprowadź opis obrazu tutaj

Istnieje głównie po to, aby pomóc w szybkiej nawigacji w pliku.

Zauważ, że myślnik ( // MARK: -) powoduje wyświetlenie ładnej linii oddzielającej. Rozważ ten MARKkomentarz:

// MARK: - A mark comment lives here.

wprowadź opis obrazu tutaj

Ciemnoszara linia separatora tuż nad pogrubioną opcją w tym menu pochodzi z myślnika.

Dodatkowo możemy osiągnąć tę linię separatora bez komentarza, po prostu nie mając żadnego tekstu po myślniku:

// MARK: -

wprowadź opis obrazu tutaj

Jak już wspomniano, // TODO:i // FIXME:komentarze pojawi się również tutaj.

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

wprowadź opis obrazu tutaj

  • FIXME otrzymują małą ikonę pomocy zespołu, która pomaga im się wyróżniać.
  • Ikona MARK wygląda jak spis treści
  • Ikony TODO wyglądają bardziej jak lista kontrolna

Kliknięcie dowolnej linii na pasku szybkiego przeskoku powoduje przejście bezpośrednio do tej linii w kodzie źródłowym.

nhgrif
źródło
Czy ta funkcja jest specyficzna dla Swift / Objective-C lub Xcode?
ma11hew28
Prawdopodobnie Xcode. Chociaż łatwo mogę sobie wyobrazić, że inne IDE mogą potencjalnie wykazywać podobne zachowanie.
nhgrif
Możesz również umieścić myślnik po tekście, // MARK: /Delegate impl. -aby zaznaczyć koniec sekcji, lub dlaczego nie oba:// MARK: - Attention! -
Andreas
7

MARK po prostu dodaje wizualny ZNAK w pasku skoku w następujący sposób:

dawny // MARK: Core Data Stack

wprowadź opis obrazu tutaj

Stefan Salatic
źródło
-5

Zawsze możesz użyć

// 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
źródło