IT TIP

"@UIApplicationMain"은 무엇을 의미합니까?

itqueen 2020. 10. 26. 21:35
반응형

"@UIApplicationMain"은 무엇을 의미합니까?


방금 첫 번째 Swift 프로젝트를 만들었습니다 AppDelegate.swift. 클래스 선언 위에 줄이 있습니다. 왜 거기에 있습니까?!

...
import UIKit
import CoreData

@UIApplicationMain // <- WHY IS IT HERE?
class AppDelegate: UIResponder, UIApplicationDelegate {
... 

@UIApplicationMainSwift 속성은 main.mObjective-C 프로젝트에서 발견 된 사소한 파일을 대체합니다 (목적은 main모든 C 프로그램의 진입 점 인 함수 를 구현 UIApplicationMain하고 Cocoa Touch 실행 루프 및 앱 인프라를 시작하는 호출입니다 ).

Objective-C에서 UIApplicationMain함수가 제공 하는 앱별 구성의 주요 (heh) 비트는 앱의 사용자 지정 클래스 중 하나를 공유 UIApplication개체 의 대리자로 지정하는 것입니다 . 스위프트, 당신은 쉽게 추가하여이 클래스를 지정할 수 있습니다 속성을 이 클래스의 선언. ( 이유가 있다면 함수를 직접 호출 할 수도 있습니다 . Swift에서는 해당 호출을 파일의 최상위 코드에 넣습니다 .)@UIApplicationMainUIApplicationMainmain.swift

@UIApplicationMainiOS 전용입니다. OS X에서 앱 델리게이트는 전통적으로 Info.plist (Swift의 경우 ObjC와 동일)에서 지정한 기본 nib 파일에 설정되어 있지만 OS X 스토리 보드에는 기본 nib 파일이 없으므로 @NSApplicationMain동일한 작업이 수행됩니다.


@UIApplicationMain 속성은 main.m 파일 및 응용 프로그램을 시작할 진입 점을 대체합니다.

이 @UIApplicationMain없이 프로그램이 작동 할 수있는 또 하나의 일은 // @ UIApplicationMain` 객관적인 c에서 main.m과 동일한 main.swift를 생성하고 아래 코드를 작성하는 것입니다. 그것은 당신의 응용 프로그램의 시작점이 될 것입니다

import Foundation
class FLApplication: UIApplication
{
    override func sendEvent(event: UIEvent!)
    {
        println("Entry Point") // this is an example
    }
}

AppDelegate.swift의 소스 파일은 두 가지 기본 기능이 있습니다 :

  • 앱에 대한 진입 점과 앱에 입력 이벤트를 전달하는 실행 루프를 만듭니다. 이 작업은 파일 상단에 나타나는 UIApplicationMain 속성 (@UIApplicationMain)에 의해 수행됩니다 . UIApplicationMain은 앱의 수명주기를 관리하는 애플리케이션 개체와 앱 대리자 개체를 만듭니다.

  • 앱 델리게이트 객체의 청사진 인 AppDelegate 클래스를 정의 합니다. 앱 대리자는 앱의 콘텐츠가 그려지는 창을 만들고 앱 내에서 상태 전환에 응답 할 수있는 위치를 제공합니다. AppDelegate 클래스는 사용자 지정 앱 수준 코드를 작성하는 곳입니다.


이제 Swift 문서가 업데이트되었으므로 다음은 관련 구절입니다.

NSApplicationMain

이 특성을 클래스에 적용하여 응용 프로그램 대리자임을 나타냅니다. 이 속성을 사용하는 것은 NSApplicationMain ( : :) 함수 를 호출 하고이 클래스의 이름을 델리게이트 클래스의 이름으로 전달하는 것과 같습니다 .

이 속성을 사용하지 않는 경우 NSApplicationMain ( : :) 함수 를 호출하는 main () 함수와 함께 main.swift 파일을 제공하십시오. 예를 들어 앱에서 NSApplication의 사용자 지정 하위 클래스를 주 클래스로 사용하는 경우이 특성을 사용하는 대신 NSApplicationMain 함수를 호출합니다.

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Attributes.html


@UIApplicationMain은이 클래스 에 대한 자세한 정보를 제공하기 위해 AppDelegate 아래에 선언 된 클래스에 적용되는 속성 입니다.

이 경우 @UIApplicationMain 속성 AppDelegate 클래스 가 앱의 애플리케이션 위임 임을 나타냅니다 .


UIApplicationMain 이 특성을 클래스에 적용하여 응용 프로그램 대리자임을 나타냅니다. 이 속성을 사용하는 것은 UIApplicationMain 함수를 호출하고이 클래스의 이름을 델리게이트 클래스의 이름으로 전달하는 것과 같습니다. (출처)

참고 URL : https://stackoverflow.com/questions/24516250/what-does-uiapplicationmain-mean

반응형