Non esiste il metodo main()
in rapido. Il programma deve iniziare l'esecuzione da qualche parte. Allora, qual è il punto di ingresso per l'esecuzione rapida del codice e come viene deciso?Qual è il punto di ingresso dell'esecuzione del codice swift?
risposta
Il punto di ingresso in un modulo Swift semplice è il file nel modulo chiamato main.swift
. main.swift
è l'unico file a cui è consentito avere espressioni e istruzioni al livello più alto (tutti gli altri file Swift nel modulo possono contenere solo dichiarazioni).
Cocoa Touch utilizza lo @UIApplicationMain
attribute su un'implementazione di UIApplicationDelegate
anziché un file main.swift
per contrassegnare il punto di ingresso. Il cacao utilizzava un file minimo main.swift
che si chiamava semplicemente NSApplicationMain
, ma as of Xcode 6.1 utilizza lo @NSApplicationMain
attribute in un'implementazione di NSApplicationDelegate
.
Nel file AppDelegate.swift
è possibile vedere @UIApplicationMain
.
AppDelegate è il file di immissione iniziale.
In sostanza: main.m
e AppDelegate.m
sono un pò fuse in Swift
a poco AppDelegate.swift
Si consiglia di leggere Files and Initialization
L'eccezione è un file speciale denominato “main.swift”, che si comporta molto come un file di gioco, ma è costruito con il codice sorgente della tua app. Il file "main.swift" può contenere il codice di livello superiore e si applicano anche le regole dipendenti dall'ordine. In effetti, la prima riga di codice da eseguire in "main.swift" è implicitamente definita come il punto di accesso principale per il programma . Ciò consente al programma Swift minimo di essere una linea singola - purché tale linea sia in "main.swift".
In Xcode, Mac template di default tra cui un file “main.swift”, ma per applicazioni iOS di default per i nuovi modelli di progetto iOS è quello di aggiungere @UIApplicationMain a un file Swift regolare. In questo modo il compilatore sintetizza un punto di ingresso principale per la tua app iOS ed elimina la necessità di per un file "main.swift".
In alternativa, è possibile collegare un'implementazione di main scritta in Objective-C, comune quando si esegue la migrazione incrementale di progetti da Objective-C a Swift.
Ho trovato che questo è un modo migliore e una spiegazione di livello superiore di come il punto di ingresso è impostato in iOS. – Steven
In Swift, sembra che lo stesso main.swift
sia il metodo main()
.
Questo non fornisce una risposta alla domanda. Una volta che hai [reputazione] sufficiente (https://stackoverflow.com/help/whats-reputation) sarai in grado di [commentare qualsiasi post] (https://stackoverflow.com/help/privileges/comment); invece [fornisci risposte che non richiedono chiarimenti da parte del richiedente] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-, invece). - [Dalla recensione] (/ recensione/post di bassa qualità/19053808) – msparer
Ho creato un nuovo progetto xcode e non riesco a trovare il file 'main.swift' da nessuna parte. Qual è la posizione di questo file? – Selvin
Nelle applicazioni Cocoa e Cocoa Touch 'main.swift' è nel gruppo ** Supporting Files **, ed è semplicemente configurato per chiamare' NSApplicationMain'. – nathan
Non è presente nel gruppo File di supporto. Non è da nessuna parte nel progetto. – Selvin