Respuestas:
El punto de entrada en un módulo Swift simple es el archivo en el módulo llamado main.swift. main.swiftes el único archivo que puede tener expresiones y declaraciones en el nivel superior (todos los demás archivos Swift en el módulo solo pueden contener declaraciones).
Cocoa Touch usa el @UIApplicationMainatributo en una implementación de en UIApplicationDelegatelugar de un main.swiftarchivo para marcar el punto de entrada. Cocoa solía usar un main.swiftarchivo mínimo que simplemente llamaba NSApplicationMain, pero a partir de Xcode 6.1 usa el @NSApplicationMainatributo en una implementación de NSApplicationDelegate.
main.swiftencuentra en el grupo Archivos de apoyo y simplemente está configurado para llamar NSApplicationMain.
main.swift.
En el AppDelegate.swiftarchivo puedes ver @UIApplicationMain.
AppDelegate es el archivo de entrada inicial.
Básicamente: main.my AppDelegate.mse fusionan un poco en SwiftsoloAppDelegate.swift
Es posible que desee leer Archivos e inicialización
La excepción es un archivo especial llamado "main.swift", que se comporta de manera muy similar a un archivo de juegos, pero está construido con el código fuente de su aplicación. El archivo “main.swift” puede contener código de nivel superior y también se aplican las reglas dependientes del orden. En efecto, la primera línea de código que se ejecuta en "main.swift" se define implícitamente como el punto de entrada principal para el programa. Esto permite que el programa Swift mínimo sea una sola línea, siempre que esa línea esté en "main.swift".
En Xcode, las plantillas de Mac incluyen de forma predeterminada un archivo "main.swift", pero para las aplicaciones de iOS, el valor predeterminado para las nuevas plantillas de proyectos de iOS es agregar @UIApplicationMain a un archivo Swift normal. Esto hace que el compilador sintetice un punto de entrada principal para su aplicación iOS y elimina la necesidad de un archivo "main.swift".
Alternativamente, puede vincular una implementación de main escrita en Objective-C, común cuando se migran proyectos de Objective-C a Swift de forma incremental.
En las aplicaciones Swift hay atributos:
@UIApplicationMain (Toque de cacao)@NSApplicationMain (Cacao)que le dicen al compilador rápido dónde está el punto de entrada de la aplicación.
Lo que hace el compilador rápido bajo el capó es que crea una mainfunción, que básicamente tiene el mismo aspecto que en las aplicaciones Objective-C y trata este método como el punto de entrada de la aplicación (un primer método que se llama cuando se inicia el proceso de la aplicación).
Si desea leer más sobre lo que hace el compilador rápido con los Mainatributos, cómo el sistema operativo sabe dónde está el punto de entrada de la aplicación, le animo a leer este artículo: Comprender el punto de entrada de la aplicación iOS
En Swift 5.3 hay un nuevo @mainatributo que le permite controlar dónde está su punto de entrada en su proyecto en lugar de solo main.swift. Solo puede haber una entrada principal y no puede tener un main.swiftarchivo y un atributo @main. Consulte https://github.com/apple/swift-evolution/blob/master/proposals/0281-main-attribute.md para obtener más detalles.
@main
struct App {
static func main() {
print("Starting.")
}
}
main.swiftarchivo en ninguna parte. ¿Cuál es la ubicación de este archivo?