Nie ma main()
szybkiej metody. Program musi skądś rozpocząć wykonywanie. Jaki jest więc punkt wejścia do szybkiego wykonania kodu i jak się na to decyduje?
cocoa-touch
swift
ios8
Selvin
źródło
źródło
main.swift
nigdzie znaleźć pliku. Jaka jest lokalizacja tego pliku?main.swift
znajduje się w grupie Supporting Files i jest po prostu skonfigurowany do wywoływaniaNSApplicationMain
.main.swift
.W
AppDelegate.swift
pliku możesz zobaczyć@UIApplicationMain
.AppDelegate jest początkowym plikiem wejściowym.
Zasadniczo:
main.m
iAppDelegate.m
są trochę połączoneSwift
z justAppDelegate.swift
źródło
Cocoa-Touch
, moja odpowiedź jest prawidłowa.Możesz przeczytać pliki i inicjalizację
źródło
W aplikacjach Swift są atrybuty:
@UIApplicationMain
(Dotyk kakaowy)@NSApplicationMain
(Kakao)które mówią szybkiemu kompilatorowi, gdzie jest punkt wejścia aplikacji.
To, co robi szybki kompilator pod maską, polega na tym, że tworzy
main
funkcję, która zasadniczo wygląda tak samo jak w aplikacjach Objective-C i traktuje tę metodę jako punkt wejścia aplikacji (pierwsza metoda, która jest wywoływana podczas uruchamiania procesu aplikacji).Jeśli chcesz przeczytać więcej o tym, co szybki kompilator robi z
Main
atrybutami, skąd system operacyjny wie, gdzie jest punkt wejścia aplikacji, zachęcam do przeczytania tego artykułu: Zrozumienie punktu wejścia aplikacji na iOSźródło
W Swift 5.3 jest nowy
@main
atrybut, który pozwala kontrolować, gdzie punkt wejścia znajduje się w projekcie, a nie tylkomain.swift
. Może istnieć tylko jeden wpis główny i nie możesz miećmain.swift
pliku ani atrybutu@main
. Więcej informacji można znaleźć pod adresem https://github.com/apple/swift-evolution/blob/master/propiments/0281-main-attribute.md .źródło