No hay main()método en Swift. El programa debe iniciar la ejecución desde algún lugar. Entonces, ¿cuál es el punto de entrada de la ejecución de código rápido y cómo se decide?
fuente
No hay main()método en Swift. El programa debe iniciar la ejecución desde algún lugar. Entonces, ¿cuál es el punto de entrada de la ejecución de código rápido y cómo se decide?
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.swiftarchivo en ninguna parte. ¿Cuál es la ubicación de este archivo?main.swiftencuentra en el grupo Archivos de apoyo y simplemente está configurado para llamarNSApplicationMain.main.swift.En el
AppDelegate.swiftarchivo puedes ver@UIApplicationMain.AppDelegate es el archivo de entrada inicial.
Básicamente:
main.myAppDelegate.mse fusionan un poco enSwiftsoloAppDelegate.swiftfuente
Cocoa-Touch, mi respuesta es correcta.Es posible que desee leer Archivos e inicialización
fuente
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 iOSfuente
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 solomain.swift. Solo puede haber una entrada principal y no puede tener unmain.swiftarchivo y un atributo@main. Consulte https://github.com/apple/swift-evolution/blob/master/proposals/0281-main-attribute.md para obtener más detalles.fuente