Mac & i 6/2023
S. 128
Developer’s Corner
Swift Makros
Bild: Claudio Caridi, stock.adobe.com; Montage: Mac & i

Einführung in Swift Macros

In Swift 5.9 lässt sich über Makros Sourcecode generieren, der dem Gesamtprojekt zu kompakterem und besser lesbarem Code verhilft. Erfahren Sie, wie Swift Macros funktionieren und wie Sie eigene Swift Macros erstellen, testen und debuggen.

Von Gero Gerber

Während der Kompilierung von Swift-Code erkennt der Compiler an den Präfixen # und @, dass er an dieser Stelle ein Makro aufrufen soll, im Falle von beispielsweise #Preview das Makro Preview. Über die Funktion „Navigate -> Jump To Definition“ (oder alternativ im Kontextmenü) im Xcode Editor gelangt man zur entsprechenden Makro-Deklaration. Entscheidend ist hier das Keyword macro, an dem der Compiler erkennt, dass es sich um ein Makro handelt. Hilfreich und nützlich ist dabei die Möglichkeit, Makros „auszuklappen“ (expand). So kann man den vom Makro erzeugten Code einsehen. Das Beispiel, das Sie über einen Link im Webcode herunterladen können, nutzt einen SwiftUI View. Standardmäßig generiert Xcode für neue Views entsprechende Previews anhand des Makros #Preview:

import SwiftUI

struct MyView: View {
    var body: some View {
        Text("Hello, World!")
    }
}

#Preview {
    MyView()
}

Ein Rechtsklick auf #Preview ruft die Funktion „Expand Macro“ auf, um zu sehen, was sich hinter dem Makro #Preview verbirgt. Dies führt dazu, dass Xcode den vom Makro erzeugten Code inline darstellt (es ist sogar möglich, im ausgeklappten Makro Breakpoints zu setzen und zu debuggen):