2014-06-08 16 views

risposta

63

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.

+1

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

+0

Nelle applicazioni Cocoa e Cocoa Touch 'main.swift' è nel gruppo ** Supporting Files **, ed è semplicemente configurato per chiamare' NSApplicationMain'. – nathan

+3

Non è presente nel gruppo File di supporto. Non è da nessuna parte nel progetto. – Selvin

30

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

+2

@nathan Ha taggato ** iOS8 **, che si riferisce a 'Cocoa-Touch', la mia risposta è giusta. – Houssni

+1

Sì, certo !! :) – Selvin

19

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.

+1

Ho trovato che questo è un modo migliore e una spiegazione di livello superiore di come il punto di ingresso è impostato in iOS. – Steven

-1

In Swift, sembra che lo stesso main.swift sia il metodo main().

+0

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