2014-06-06 18 views
8

Ktoś zna sekwencję uruchamiania szybkiej aplikacji ?. Jak widzę, nie ma funkcji main w szybkiej aplikacji. Następnie kto jest odpowiedzialny za wykonanie tego obiektu aplikacji i AppDelegate jest tutaj tworzony. Ale dla szybkiej aplikacji zastanawiałem się, kto je tworzy.Uruchamianie sekwencji aplikacji Swift

Jeśli ktoś wie, podziel się swoimi przemyśleniami.

Odpowiedz

7

Szybkie Book mówi:

Kod napisany w zakresie globalnym służy jako punkt wyjścia dla programu, więc nie trzeba się główną funkcję.

Jeśli przyjrzeć się swojej AppDelegate jest markerem @UIApplicationMain który jest poza jakimkolwiek zakresie i traktować jako punkt wyjścia.

+0

Ya .. Widziałem to. ale nie jestem pewien co do '@ UIApplicationMain'. bez dokumentów! –

+2

Znaleźliśmy więcej informacji tutaj http://stackoverflow.com/a/24021180/1873085 – Daniel

10

Jeśli spojrzysz na klasę AppDelegate.Swift, znajdziesz instrukcję @UIApplicationMain zapisaną w globalnym obszarze pliku. Jak wspomniał @Daniel w swojej odpowiedzi.

Teraz próbowałem komentując tę ​​linię i kompilacji kodu, zobacz co mam ..

enter image description here

W bardzo prostym językiem, błąd powiedzieć kompilator próbuje szukać implicit entry/start for main executable, ale nie dostaję.

pokazuje @UIApplicationMain oświadczenie w tworzy domyślny punkt wejścia dla programu Swift.

Próbowałem napisać bezpośrednio klasę main.swift ... działa.

mój main.swift wygląda ..

import Foundation 
import UIKit 

UIApplicationMain(C_ARGC, C_ARGV, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate)) 
+2

Brak konieczności autoreleasepool? – CopperCash

+0

@CopperCash UIApplicationMain nigdy nie wraca, pula nigdy nie może zostać opróżniona. – Kevin

Powiązane problemy