2014-06-08 6 views

Odpowiedz

63

Punktem wejścia w prostym module Swift jest plik w module o nazwie main.swift. main.swift to jedyny plik, który może mieć wyrażenia i wyciągi na najwyższym poziomie (wszystkie inne pliki Swift w module mogą zawierać tylko deklaracje).

Cocoa Touch używa @UIApplicationMain attribute dla implementacji UIApplicationDelegate zamiast pliku main.swift do oznaczenia punktu wejścia. Kakao używało minimalnego pliku main.swift, który po prostu nazywa się NSApplicationMain, ale as of Xcode 6.1 używa @NSApplicationMain attribute w implementacji NSApplicationDelegate.

+1

Utworzono nowy projekt xcode i nie mogę znaleźć pliku 'main.swift' w dowolnym miejscu. Jaka jest lokalizacja tego pliku? – Selvin

+0

W aplikacjach Cocoa i Cocoa Touch "main.swift" znajduje się w grupie ** Supporting Files ** i jest po prostu skonfigurowany do wywoływania 'NSApplicationMain'. – nathan

+3

Nie ma jej w grupie Obsługa plików. Nie jest nigdzie w projekcie. – Selvin

30

W pliku AppDelegate.swift widać @UIApplicationMain.
AppDelegate jest początkowym plikiem wejściowym.

Zasadniczo: main.m i AppDelegate.m są trochę połączyły się w Swift tylko AppDelegate.swift

+2

@nathan Tagował ** iOS8 **, który pasuje do 'Cocoa-Touch', moja odpowiedź jest właściwa. – Houssni

+1

Tak, rzeczywiście! :) – Selvin

19

Możesz przeczytać Files and Initialization

Wyjątkiem jest specjalny plik o nazwie „main.swift”, który zachowuje się znacznie podobnie jak plik placu zabaw, ale jest zbudowany z kodu źródłowego Twojej aplikacji. Plik "main.swift" może zawierać kod najwyższego poziomu, a obowiązują również reguły zależne od zamówienia: . W efekcie pierwszy wiersz kodu do uruchomienia w "main.swift" jest niejawnie zdefiniowany jako główny punkt wejścia dla programu . Dzięki temu minimalny program Swift może być pojedynczą linią - , o ile ta linia jest w "main.swift".

w Xcode, Mac szablonów domyślnie w tym „main.swift” plik, ale dla iOS domyślnym dla nowych szablonów projektowych iOS jest dodanie @UIApplicationMain do zwykłego pliku Swift. Powoduje to, że kompilator syntetyzuje główny punkt wejścia dla aplikacji na iOS i eliminuje potrzebę pliku "main.swift" pod numerem .

Alternatywnie, można połączyć w realizacji głównego napisanego w Objective-C, wspólny kiedy stopniowo migracji projektów z Objective-C do Swift.

+1

Stwierdziłem, że jest to lepszy i wyższy poziom wyjaśnienia, jak punkt wejścia jest skonfigurowany w iOS. – Steven

-1

W Swift wygląda na to, że main.swift to metoda main().

+0

Nie zapewnia to odpowiedzi na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ opinia/niskiej jakości-posts/19053808) – msparer