Qual é o ponto de input da execução rápida de código?

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.