swift 프로젝트의main 함수

3849 단어
swift는 AppDelegate에 있습니다.swift에서main 함수를 탭@UIApplicationMain으로 대체하였으며, 지금은 프로그램의 입구로 직접 만들 수 있습니다. 이때 탭main.swift을 주석@UIApplicationMain 코드는 다음과 같습니다.
import UIKit

UIApplicationMain(CommandLine.argc,
                  UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer.self, capacity: Int(CommandLine.argc)),
                  nil,
                  NSStringFromClass(AppDelegate.self))

방법 설명
public func UIApplicationMain(_ argc: Int32, 
              _ argv: UnsafeMutablePointer>!, 
              _ principalClassName: String?,
              _ delegateClassName: String?) -> Int32
  • argc: 시스템 또는 사용자가 입력한 매개 변수
  • argv: 시스템이나 사용자가 전송한 실제 매개 변수
  • principalClassName: 주요 응용 프로그램 클래스의 이름을 결정했습니다. 이 매개 변수는 nil일 수 있습니다. 그러면 UIKit는 기본 프로그램 클래스인 UIApplication
  • 을 사용할 수 있습니다.
  • delegateClassName: 프로그램이 사용자 정의한 프록시 클래스 이름입니다. 이 클래스는 시스템과 코드 간의 상호작용을 담당합니다. 일반적으로 AppDelegate이고 하위 클래스도 사용자 정의할 수 있습니다.

  • UIApplicationMain
    이 부분은 널빤지 못에서 전환된 main.swift 파일이든 main.swift 속성이든 마지막에 @UIApplicationMain 함수를 호출하는 것을 소개한다.사실 우리 앱은 한 가지 일만 했다. 바로 호출UIApplicationMain 함수다.UIApplicationMain 함수가 무엇을 했는지 봅시다.UIApplicationMain 앱을 만드는 첫 번째 실례, 응용 프로그램 실례UIApplicationMain.UIApplication.shared 함수의 세 번째 매개 변수는 응용 프로그램의 실례에 속하는 클래스를 지정했는데 기본적으로 이 매개 변수는 UIApplicationMain이고 기본 클래스는 nil이다.만약subclassUIApplication를 원한다면 UIApplication 함수의 세 번째 인자를 하위 클래스 이름으로 지정해야 한다. 예를 들어 UIApplicationMain.
    2. NSStringFromClass(MyAppSubclass.self) 앱의 두 번째 실례, 앱 delegate를 만듭니다.UIApplicationMain 함수의 네 번째 매개 변수는 app delegate에 속하는 클래스를 지정했다UIApplicationMain.NSStringFromClass(AppDelegate.self) 속성을 사용하면 이 속성은 기본적으로 @UIApplicationMain 클래스의 성명에 추가되며 그 의미는 AppDelegate 함수와 같다.
    3. UIApplicationMain 파일이mainstoryboard를 지정하면 Info.plist 함수는storyboard를 불러오고 그 중의 initialviewcontroller(또는storyboard의 입구점)를 찾으며 이viewcontroller를 실례화합니다. 이것은 세 번째 실례입니다.Single View app 모델에 대해 이 실례는 UIApplicationMain 클래스의 실례이고 이 클래스는 ViewController에 정의되어 있다.
    4. ViewController.swift 파일이 존재한다면 main.storyboard 함수는 이제 응용 프로그램을 만드는 UIApplicationMain입니다. 이것은 app의 네 번째 실례입니다. 하나window 클래스의 실례(또는 UIWindow에서 UIWindow 하위 클래스의 실례로 바꿀 수 있습니다).window 실례를 만든 후 AppDelegateAppDelegate 속성으로 지정하고 window 실례를 initial view controller 실례의 window 속성으로 지정합니다.
    5.rootViewController 지금부터 UIApplicationMain 실례를 처리하고 그 방법을 호출한다. 예를 들어 AppDelegate 이 방법에서 우리는 자신의 코드를 추가하여 초기화된 설정을 할 수 있지만 비교적 시간이 걸리는 작업을 하지 마라. 왜냐하면 이때 우리의 앱 인터페이스가 아직 표시되지 않았기 때문이다.
    6.application(_:didFinishLaunchingWithOptions:) 파일이 존재하면 main.storyboard 함수가 UIApplicationMain의 실례적인 방법UIWindow을 호출하기 시작하면 app인터페이스가 표시됩니다.
    7. makeKeyAndVisible 표시 과정에서 windowroot view controller를 얻고, main viewview controllerview 또는 storyboard 파일을 통해 얻으면 xib 파일이 불러옵니다.nib 파일의 실례화와 초기화를 초기 인터페이스의 대상이라고 하고 nibviewsubview에 배치된다.windowview controller 방법이 호출되어 여기에 자신의 코드를 쓸 수 있다.
    응용 프로그램은 이미 시작하여 실행을 시작했고 viewDidLoad 함수는 여전히 실행되고 영원히 UIApplicationMain되지 않으며 사용자의 행위, 관리return 등을 계속 감시한다.

    좋은 웹페이지 즐겨찾기