Respuestas:
El punto de entrada en un módulo Swift simple es el archivo en el módulo llamado main.swift
. main.swift
es 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 @UIApplicationMain
atributo en una implementación de en UIApplicationDelegate
lugar de un main.swift
archivo para marcar el punto de entrada. Cocoa solía usar un main.swift
archivo mínimo que simplemente llamaba NSApplicationMain
, pero a partir de Xcode 6.1 usa el @NSApplicationMain
atributo en una implementación de NSApplicationDelegate
.
main.swift
encuentra en el grupo Archivos de apoyo y simplemente está configurado para llamar NSApplicationMain
.
main.swift
.
En el AppDelegate.swift
archivo puedes ver @UIApplicationMain
.
AppDelegate es el archivo de entrada inicial.
Básicamente: main.m
y AppDelegate.m
se fusionan un poco en Swift
soloAppDelegate.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 main
funció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 Main
atributos, 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 @main
atributo 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.swift
archivo 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.swift
archivo en ninguna parte. ¿Cuál es la ubicación de este archivo?