Відповіді:
Точкою входу в звичайний модуль 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
ніде знайти файл. Яке розташування цього файлу?