1020 Stimmen

#pragma mark in Swift?

In Objective C, I can use #pragma mark to mark sections of my code in the symbol navigator. Since this is a C preprocessor command, it's not available in Swift. Is there a stand-in for this in Swift, or do I have to use ugly comments?

In Objective C kann ich #pragma mark verwenden, um Abschnitte meines Codes im Symbolnavigator zu markieren. Da dies ein C-Präprozessor-Befehl ist, ist es in Swift nicht verfügbar. Gibt es einen Ersatz dafür in Swift, oder muss ich hässliche Kommentare verwenden?

7voto

7stud Punkte 44119

//MARK: scheint für mich in Xcode 6.3.2 nicht zu funktionieren. Allerdings habe ich folgendes getan, um es zum Laufen zu bringen:

1) Code:

import Cocoa

class MainWindowController: NSWindowController {

    //MARK: - Meine coolen Methoden

    func fliege() {
    }

    func werdeUnsichtbar() {

    }
}

2) In der Springleiste scheint sich nichts zu ändern, wenn man den //MARK-Kommentar hinzufügt. Wenn ich jedoch auf den rechtesten Namen in der Springleiste klicke, der in meinem Fall MainWindowController (mit einem führenden C-Symbol) lautet, wird ein Popup-Fenster angezeigt, das die Auswirkungen des //MARK:-Kommentars zeigt, nämlich eine Überschrift mit "Meine coolen Methoden":

Bildbeschreibung hier eingeben

3) Ich bemerke auch, dass wenn ich auf eine der Methoden in meinem Code klicke, wird diese Methode zum rechtesten Eintrag in der Sprungleiste. Um MainWindowController (mit einem führenden C-Symbol) zum rechtesten Eintrag in der Sprungleiste zu machen, muss ich auf den leeren Bereich über meinen Methoden klicken.

5voto

UtopiaLtd Punkte 2370

Apple gibt in der neuesten Version von Building Cocoa Apps an,

Der Swift-Compiler enthält keinen Preprozessor. Stattdessen nutzt er Compile-Time-Attribute, Build-Konfigurationen und Sprachfunktionen, um die gleiche Funktionalität zu erreichen. Aus diesem Grund werden Präprozessordirektiven nicht in Swift übernommen.

Das # Zeichen scheint immer noch der Weg zu sein, wie Sie mit verschiedenen Build-Konfigurationen und ähnlichen Dingen arbeiten, aber es sieht so aus, als ob sie versuchen, Ihren Bedarf an den meisten Vorverarbeitungen im Bereich der Pragma zu reduzieren und Sie stattdessen auf andere Sprachfunktionen zu verweisen. Vielleicht dient dies dazu, den Betrieb der Playgrounds und des REPL so nah wie möglich am vollständig kompilierten Code zu gewährleisten.

3voto

vrat2801 Punkte 478

Pragma-Mark ist eine Möglichkeit, die Lesbarkeit Ihres Codes zu verbessern. Die Pragma-Kommentare erscheinen ähnlich wie Tags in der Xcode-Jumpbar.

//MARK:  

Beispiel: Im Code,

//MARK: Eigenschaften

// MARK: Ansichtslebenszyklus

//MARK: Hilfsmethoden

So würde es in der Xcode-Jump-Leiste erscheinen.

Bildbeschreibung hier eingeben

2voto

Hiren Punkte 679

Fügen Sie ein To-Do-Element hinzu: Fügen Sie einen Kommentar mit dem Präfix TODO: ein. Zum Beispiel: // TODO: [Ihr To-Do-Element].

Fügen Sie eine Fehlerbehebungserinnerung hinzu: Fügen Sie einen Kommentar mit dem Präfix FIXME: ein. Zum Beispiel: // FIXME: [Ihre Fehlerbehebungserinnerung].

Fügen Sie eine Überschrift hinzu: Fügen Sie einen Kommentar mit dem Präfix MARK: ein. Zum Beispiel: // MARK: [Ihre Abschnittsüberschrift].

Fügen Sie eine Trennlinie hinzu: Um über einer Annotation einen Trenner hinzuzufügen, fügen Sie vor dem Kommentarteil der Annotation einen Bindestrich (-) hinzu. Zum Beispiel: // MARK: - [Ihr Inhalt]. Um unterhalb einer Annotation einen Trenner hinzuzufügen, fügen Sie nach dem Kommentarteil der Annotation einen Bindestrich (-) hinzu. Beispiel: // MARK: [Ihr Inhalt] -.

2voto

Nirbhay Singh Punkte 1174

Probiere dies aus:

// MARK: Tabelle neu laden

func reloadTableView(){

    tableView.reload()
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X