Respostas:
O ponto de entrada 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 declarações no nível superior (todos os outros arquivos Swift no módulo podem conter apenas declarações).
Cocoa Touch usa o @UIApplicationMainatributo em uma implementação de em UIApplicationDelegatevez de um main.swiftarquivo para marcar o ponto de entrada. Cocoa costumava usar um main.swiftarquivo mínimo que simplesmente chamava NSApplicationMain, mas a partir do Xcode 6.1 usa o @NSApplicationMainatributo em uma implementação de NSApplicationDelegate.
main.swiftestão no grupo Arquivos de Suporte e são simplesmente configurados para chamar NSApplicationMain.
main.swift.
No AppDelegate.swiftarquivo você pode ver @UIApplicationMain.
O AppDelegate é o arquivo de entrada inicial.
Basicamente: main.me AppDelegate.msão meio que mesclados Swiftcom apenasAppDelegate.swift
Você pode querer ler Arquivos e inicialização
A exceção é um arquivo especial denominado “main.swift”, que se comporta de forma muito semelhante a 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 do pedido também se aplicam. Na verdade, a primeira linha de código a ser executada em “main.swift” é definida implicitamente como o ponto de entrada principal do programa. Isso permite que o programa mínimo do Swift seja uma única linha - desde que essa linha esteja em “main.swift”.
No Xcode, os modelos do 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 regular. Isso faz com que o compilador sintetize um ponto de entrada principal para seu aplicativo iOS e elimina a necessidade de um arquivo “main.swift”.
Alternativamente, você pode vincular uma implementação de main escrita em Objective-C, comum ao migrar projetos de forma incremental de Objective-C para Swift.
Em aplicativos Swift, existem atributos:
@UIApplicationMain (Cocoa Touch)@NSApplicationMain (Cacau)que informam ao compilador rápido onde está o ponto de entrada do aplicativo.
O que o compilador Swift faz por baixo do capô é que ele cria uma mainfunção, que basicamente se parece com os aplicativos Objective-C e trata esse método como o ponto de entrada do aplicativo (um primeiro método que é chamado quando o processo do aplicativo é iniciado).
Se você quiser ler mais sobre o que o compilador swift faz com Mainatributos, como o sistema operacional sabe onde está o ponto de entrada do aplicativo, eu o encorajo a ler este artigo: Entendendo o ponto de entrada do aplicativo iOS
No Swift 5.3 há um novo @mainatributo que permite controlar onde está o ponto de entrada no projeto, e não apenas main.swift. Só pode haver uma entrada principal e você não pode ter um main.swiftarquivo e um atributo @main. Consulte https://github.com/apple/swift-evolution/blob/master/proposals/0281-main-attribute.md para obter mais detalhes.
@main
struct App {
static func main() {
print("Starting.")
}
}
main.swiftarquivo em lugar nenhum. Qual é a localização deste arquivo?