Files and Initialization - Swift Blog
swift-evolution/0281-main-attribute.md at main · apple/swift-evolution
모든 프로그램에는 항상 앱이 시작되어야 하는 진입점이 있으며 Swift도 예외는 아니다. 아주 먼 옛날에는 아래와 같이 main.m
을 가지고 잇었다
main.m
int main(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(argc,
argv,
nil,
NSStringFromClass([AppDelegate Class]));
}
}
위의 코드는 우리가 더 이상 사용하지 않는 아주 오래된 코드이다. 앱의 진입점을 알려주는 c 시대의 오래된 방식이다.
Swift에서는 계속 사용할 수 있으며 main.swift는 앱의 진입점이 된다.
main.swift
autoreleasepool {
UIApplicationMain(CommandLine.argc,
CommandLine.unsafeArgv,
nil,
NSStringFromClass(AppDelegate.self))
}
오늘날 우리는 두 가지를 가지고 있다
이 주석을 클래스에 추가한다는 것은 이 클래스가 Application의 Delegate이고 UIApplicationMain(:,:,:,:)
자신을 만들고 이 클래스를 Delegate로 제공하는 것과 동일하다는 것을 의미한다.
이 주석을 클래스, 구조체 또는 열거형에 추가하면 앱에 대한 진입점이 포함되고 static main 함수를 제공해야 함을 의미한다. 따라서 다음과 같이 할 수 있다.