programing

신속한 코드 실행의 시작점은 무엇입니까?

magicmemo 2023. 8. 9. 20:38
반응형

신속한 코드 실행의 시작점은 무엇입니까?

거기에는 없다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 컴파일러가 사용하는 기능에 대해 자세히 읽고 싶다면MainOS가 애플리케이션의 시작 지점을 파악하는 방법에 대한 속성은 다음 기사를 읽어보시기 바랍니다.iOS 앱 진입점 이해

enter image description here

일반 스위프트 모듈의 진입점은 호출된 모듈의 파일입니다.

언급URL : https://stackoverflow.com/questions/24105690/what-is-the-entry-point-of-swift-code-execution

반응형