Відповіді:
Точкою входу в звичайний модуль Swift є файл у модулі, який називається main.swift. main.swift- єдиний файл, на якому дозволено мати вирази та заяви на верхньому рівні (всі інші файли Swift в модулі можуть містити лише декларації).
Cocoa Touch використовує @UIApplicationMainатрибут для реалізації, UIApplicationDelegateа не main.swiftфайл для позначення точки входу. Какао використовував мінімальний main.swiftфайл, який просто викликався NSApplicationMain, але станом на Xcode 6.1 використовує @NSApplicationMainатрибут для реалізації NSApplicationDelegate.
main.swiftє група підтримки файлів , яка просто налаштована на дзвінки NSApplicationMain.
main.swift.
У AppDelegate.swiftфайлі ви можете побачити @UIApplicationMain.
AppDelegate - це початковий файл запису.
В основному: main.mі AppDelegate.mсвого роду об'єднуються в SwiftсправедливіAppDelegate.swift
Ви можете прочитати файли та ініціалізацію
Виняток становить спеціальний файл з назвою "main.swift", який веде себе як файл ігрового майданчика, але створений з вихідним кодом програми. Файл "main.swift" може містити код верхнього рівня, а також застосовуються правила, що залежать від замовлення. Фактично, перший рядок коду, який запускається в "main.swift", неявно визначається як головна точка входу для програми. Це дозволяє мінімальній програмі Swift бути єдиним рядком - до тих пір, поки ця лінія знаходиться в "main.swift".
У Xcode шаблони Mac за замовчуванням включають файл "main.swift", але для програм iOS типовим для нових шаблонів проектів iOS є додавання @UIApplicationMain до звичайного файлу Swift. Це змушує компілятор синтезувати основну точку входу для вашої програми iOS і позбавляє від необхідності файлу «main.swift».
Крім того, ви можете зв’язатись у реалізації головного, написаного в Objective-C, поширеного при поступовому переміщенні проектів від Objective-C до Swift.
У додатках Swift є атрибути:
@UIApplicationMain (Какао-дотик)@NSApplicationMain (Какао)які повідомляють компілятор швидкого доступу, де знаходиться точка входу програми.
Що швидкий компілятор робить під кришкою, це те, що він створює mainфункцію, яка в основному виглядає так само, як і в додатках Objective-C, і розглядає цей метод як точку входу програми (перший метод, який викликається при запуску процесу заявки).
Якщо ви хочете прочитати більше про те, що робить швидкий компілятор з Mainатрибутами, як ОС знає, де знаходиться точка входу програми, рекомендую прочитати цю статтю: Розуміння точки входу програми для iOS
У Swift 5.3 є новий @mainатрибут, який дозволяє вам контролювати, де ваша точка входу у вашому проекті, а не просто main.swift. Тут може бути тільки один основний запис, і ви не можете мати main.swiftфайл та атрибут @main. Докладніші відомості див. У https://github.com/apple/swift-evolution/blob/master/proposals/0281-main-attribute.md .
@main
struct App {
static func main() {
print("Starting.")
}
}
main.swiftніде знайти файл. Яке розташування цього файлу?