Es gibt keine main()
Methode in Swift. Das Programm muss die Ausführung von irgendwo aus starten. Was ist der Einstiegspunkt für die schnelle Codeausführung und wie wird entschieden?
quelle
Es gibt keine main()
Methode in Swift. Das Programm muss die Ausführung von irgendwo aus starten. Was ist der Einstiegspunkt für die schnelle Codeausführung und wie wird entschieden?
Der Einstiegspunkt in ein einfaches Swift-Modul ist die Datei im aufgerufenen Modul main.swift
. main.swift
ist die einzige Datei, die Ausdrücke und Anweisungen auf der obersten Ebene enthalten darf (alle anderen Swift-Dateien im Modul können nur Deklarationen enthalten).
Cocoa Touch verwendet das @UIApplicationMain
Attribut für eine Implementierung von UIApplicationDelegate
anstelle einer main.swift
Datei, um den Einstiegspunkt zu markieren. Cocoa verwendete früher eine minimale main.swift
Datei, die einfach aufgerufen wurde NSApplicationMain
, aber ab Xcode 6.1 wird das @NSApplicationMain
Attribut für eine Implementierung von verwendet NSApplicationDelegate
.
main.swift
kann nirgendwo eine Datei finden. Wo befindet sich diese Datei?main.swift
in der Gruppe " Unterstützende Dateien " und werden einfach zum Aufrufen konfiguriertNSApplicationMain
.main.swift
.In der
AppDelegate.swift
Datei können Sie sehen@UIApplicationMain
.Das AppDelegate ist die erste Eingabedatei.
Grundsätzlich:
main.m
undAppDelegate.m
sind irgendwieSwift
zu nur verschmolzenAppDelegate.swift
quelle
Cocoa-Touch
, ist meine Antwort richtig.Möglicherweise möchten Sie Dateien und Initialisierung lesen
quelle
In Swift-Apps gibt es Attribute:
@UIApplicationMain
(Cocoa Touch)@NSApplicationMain
(Kakao)das teilt dem schnellen Compiler mit, wo sich der Einstiegspunkt der Anwendung befindet.
Was der schnelle Compiler unter der Haube macht, ist, dass er eine erstellt
main
Funktion erstellt, die im Grunde genommen genauso aussieht wie in Objective-C-Apps und diese Methode als Einstiegspunkt der App behandelt (eine erste Methode, die beim Starten des Anwendungsprozesses aufgerufen wird).Wenn Sie mehr darüber erfahren möchten, was der schnelle Compiler mit
Main
Attributen macht und wie das Betriebssystem weiß, wo sich der Einstiegspunkt der Anwendung befindet, empfehlen wir Ihnen, diesen Artikel zu lesen: Grundlegendes zum Einstiegspunkt für iOS- Appsquelle
In Swift 5.3 gibt es ein neues
@main
Attribut, mit dem Sie steuern können, wo sich Ihr Einstiegspunkt in Ihrem Projekt befindet und nicht nurmain.swift
. Es kann nur einen Haupteintrag geben und Sie können keinemain.swift
Datei und kein Attribut haben@main
. Weitere Informationen finden Sie unter https://github.com/apple/swift-evolution/blob/master/proposals/0281-main-attribute.md .quelle