신속한 코드 실행의 시작점은 무엇입니까?
거기에는 없다main()
신속한 방법프로그램은 어딘가에서 실행을 시작해야 합니다.그렇다면 신속한 코드 실행의 진입점은 무엇이며 어떻게 결정됩니까?
일반 스위프트 모듈의 진입점은 다음과 같은 모듈의 파일입니다.main.swift
.main.swift
는 최상위 수준의 식 및 문을 가질 수 있는 유일한 파일입니다(모듈의 다른 모든 Swift 파일에는 선언만 포함될 수 있습니다).
Cocoa Touch는 의 구현에 속성을 사용합니다.main.swift
진입점을 표시하는 파일입니다.최소한의 코코아를 사용main.swift
간단히 전화를 건 파일NSApplicationMain
그러나 Xcode 6.1에서는 의 구현에 속성을 사용합니다.
에서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" 파일을 사용할 필요가 없습니다.
또는 목표-C에서 스위프트로 프로젝트를 점진적으로 마이그레이션할 때 공통적으로 사용되는 목표-C로 작성된 메인 구현에 링크할 수 있습니다.
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.")
}
}
Swift 앱에는 다음과 같은 속성이 있습니다.
@UIApplicationMain
터치 (코코아 터치)@NSApplicationMain
(코아코))
애플리케이션의 진입점이 어디에 있는지 신속한 컴파일러에게 알려줍니다.
swift 컴파일러가 후드 아래에서 수행하는 것은 다음을 생성하는 것은main
기본적으로 Objective-C 앱과 동일하게 보이고 이 방법을 앱의 진입점(애플리케이션 프로세스가 시작될 때 호출되는 첫 번째 방법)으로 처리하는 기능입니다.
swift 컴파일러가 사용하는 기능에 대해 자세히 읽고 싶다면Main
OS가 애플리케이션의 시작 지점을 파악하는 방법에 대한 속성은 다음 기사를 읽어보시기 바랍니다.iOS 앱 진입점 이해
일반 스위프트 모듈의 진입점은 호출된 모듈의 파일입니다.
언급URL : https://stackoverflow.com/questions/24105690/what-is-the-entry-point-of-swift-code-execution
'programing' 카테고리의 다른 글
lodash를 사용하여 Array에서 객체를 찾고 반환하는 방법은 무엇입니까? (0) | 2023.08.09 |
---|---|
주석을 사용하여 이름별 스프링 빈 자동 배선 (0) | 2023.08.09 |
PHP MYSQL 중첩된 json으로 OneToMany 선택 (0) | 2023.08.09 |
CSS 선택기/HTML 속성에 대시가 선호되는 이유는 무엇입니까? (0) | 2023.08.04 |
폴리곤 내 경계 상자 검색에 공간 인덱스가 사용되지 않음 (0) | 2023.08.04 |