답변:
일반 Swift 모듈의 진입 점은 main.swift
. main.swift
최상위 수준에서 표현식과 명령문을 가질 수있는 유일한 파일입니다 (모듈의 다른 모든 Swift 파일은 선언 만 포함 할 수 있음).
Cocoa Touch는 진입 점을 표시하기 위해 파일 대신 구현에 @UIApplicationMain
속성 을 사용합니다 . 코코아는 최소한 사용하는 데 사용 단순히라는 파일을 하지만, 엑스 코드 6.1로 용도 속성 의 구현에를 .UIApplicationDelegate
main.swift
main.swift
NSApplicationMain
@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 프로젝트 템플릿의 기본값은 일반 Swift 파일에 @UIApplicationMain을 추가하는 것입니다. 이렇게하면 컴파일러가 iOS 앱의 기본 진입 점을 합성하고 "main.swift"파일이 필요하지 않습니다.
또는 Objective-C에서 Swift로 프로젝트를 점진적으로 마이그레이션 할 때 일반적으로 Objective-C로 작성된 main 구현에서 링크 할 수 있습니다.
Swift 앱에는 다음과 같은 속성이 있습니다.
@UIApplicationMain
(코코아 터치)@NSApplicationMain
(코코아)애플리케이션의 진입 점이 어디인지 신속한 컴파일러에 알려줍니다.
신속한 컴파일러가 내부적으로 수행하는 작업은 main
기본적으로 Objective-C 앱에서와 동일하게 보이고이 메서드를 앱의 진입 점 (애플리케이션 프로세스가 시작될 때 호출되는 첫 번째 메서드)으로 취급 하는 함수를 생성한다는 것 입니다.
swift 컴파일러가 Main
어트리뷰트로 무엇을 하는지, OS가 애플리케이션의 진입 점이 어디인지 아는 방법에 대해 더 알고 싶다면이 기사를 읽는 것이 좋습니다. 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
어디서나 파일 을 찾을 수 없습니다 . 이 파일의 위치는 무엇입니까?