Não existe um método main()
no swift. O programa deve iniciar a execução de algum lugar. Então, qual é o ponto de input da execução rápida do código e como é decidido?
O ponto de input em um módulo Swift simples é o arquivo no módulo chamado main.swift
. main.swift
é o único arquivo que tem permissão para ter expressões e instruções no nível superior (todos os outros arquivos do Swift no módulo podem conter apenas declarações).
O Cocoa Touch usa o atributo @UIApplicationMain
em uma implementação de UIApplicationDelegate
vez de um arquivo main.swift
para marcar o ponto de input. O cacau costumava usar um arquivo main.swift
mínimo que simplesmente chamava NSApplicationMain
, mas a partir do Xcode 6.1 usa o atributo @NSApplicationMain
em uma implementação de NSApplicationDelegate
.
No arquivo AppDelegate.swift
você pode ver @UIApplicationMain
.
O AppDelegate é o arquivo de input inicial.
Basicamente: main.m
e AppDelegate.m
estão mesclados no Swift
para apenas AppDelegate.swift
Você pode querer ler arquivos e boot
A exceção é um arquivo especial chamado “main.swift”, que se comporta como um arquivo de playground, mas é construído com o código-fonte do seu aplicativo. O arquivo “main.swift” pode conter código de nível superior e as regras dependentes de ordem se aplicam também. Na verdade, a primeira linha de código a ser executada em main.swift é definida implicitamente como o ponto de input principal do programa. Isso permite que o programa Swift mínimo seja uma única linha, desde que essa linha esteja em “main.swift”.
No Xcode, os modelos Mac padrão incluem um arquivo “main.swift”, mas para aplicativos iOS o padrão para novos modelos de projeto iOS é adicionar @UIApplicationMain a um arquivo Swift normal. Isso faz com que o compilador sintetize um ponto de input principal para seu aplicativo iOS e elimina a necessidade de um arquivo “main.swift”.
Alternativamente, você pode vincular em uma implementação de main escrita em Objective-C, comum quando migrar incrementalmente projetos de Objective-C para Swift.