Réponses:
Le point d'entrée dans un module Swift simple est le fichier dans le module appelé main.swift
. main.swift
est le seul fichier autorisé à avoir des expressions et des instructions au niveau supérieur (tous les autres fichiers Swift du module ne peuvent contenir que des déclarations).
Cocoa Touch utilise l' @UIApplicationMain
attribut sur une implémentation de UIApplicationDelegate
au lieu d'un main.swift
fichier pour marquer le point d'entrée. Cocoa utilisait un main.swift
fichier minimal qui appelait simplement NSApplicationMain
, mais à partir de Xcode 6.1 utilise l' @NSApplicationMain
attribut sur une implémentation de NSApplicationDelegate
.
main.swift
trouve dans le groupe Fichiers de prise en charge et est simplement configuré pour appeler NSApplicationMain
.
main.swift
.
Dans le AppDelegate.swift
fichier, vous pouvez voir @UIApplicationMain
.
L'AppDelegate est le fichier d'entrée initial.
En gros: main.m
et AppDelegate.m
sont un peu fusionné dans Swift
justeAppDelegate.swift
Vous voudrez peut-être lire les fichiers et l'initialisation
L'exception est un fichier spécial nommé «main.swift», qui se comporte un peu comme un fichier de jeu, mais est construit avec le code source de votre application. Le fichier «main.swift» peut contenir du code de niveau supérieur et les règles dépendant de l'ordre s'appliquent également. En effet, la première ligne de code à exécuter dans «main.swift» est implicitement définie comme le point d'entrée principal du programme. Cela permet au programme Swift minimal d'être une seule ligne - tant que cette ligne est dans «main.swift».
Dans Xcode, les modèles Mac incluent par défaut un fichier «main.swift», mais pour les applications iOS, la valeur par défaut pour les nouveaux modèles de projet iOS consiste à ajouter @UIApplicationMain à un fichier Swift normal. Cela amène le compilateur à synthétiser un point d'entrée principal pour votre application iOS et élimine le besoin d'un fichier «main.swift».
Vous pouvez également créer un lien dans une implémentation de main écrite en Objective-C, courante lors de la migration incrémentielle de projets d'Objective-C vers Swift.
Dans les applications Swift, il existe des attributs:
@UIApplicationMain
(Touche de cacao)@NSApplicationMain
(Cacao)qui indiquent au compilateur Swift où est le point d'entrée de l'application.
Ce que le compilateur rapide fait sous le capot, c'est qu'il crée une main
fonction, qui ressemble fondamentalement à celle des applications Objective-C et traite cette méthode comme le point d'entrée de l'application (une première méthode appelée lorsque le processus d'application est démarré).
Si vous souhaitez en savoir plus sur ce que fait le compilateur rapide avec les Main
attributs, comment le système d'exploitation sait où se trouve le point d'entrée de l'application, je vous encourage à lire cet article: Comprendre le point d'entrée de l'application iOS
Dans Swift 5.3, il existe un nouvel @main
attribut qui vous permet de contrôler où se trouve votre point d'entrée dans votre projet plutôt que simplement main.swift
. Il ne peut y avoir qu'une seule entrée principale et vous ne pouvez pas avoir de main.swift
fichier et un attribut @main
. Voir https://github.com/apple/swift-evolution/blob/master/proposals/0281-main-attribute.md pour plus de détails.
@main
struct App {
static func main() {
print("Starting.")
}
}
main.swift
fichier nulle part. Quel est l'emplacement de ce fichier?