AppDelegate 将会创建 App 的入口和 Run Loop(运行循环),并将输入事件发送到 App(由 @UIApplicationMain 完成)。
Run Loop:
An event processing loop that you use to schedule work and coordinate the receipt of incoming events in your app. (From Start Developing iOS Apps (Swift))
Run Loop 是一个事件处理循环,可以用来在应用中安排任务并定位收到的即将到来的事件。
Code written at global scope is used as the entry point for the program, so you don’t need a main() function. (From The Swift Programming Language (Swift 3.0.1))
全局范围书写的代码将被当作程序入口,所以不需要 main() 函数。
Preface
首先要感谢没故事的卓同学大大送的泊学会员,在泊学学了几节课,了解了很多不同角度的 iOS 开发知识。这篇文章就启发自其 iOS 101 中的一个纯手工的 Single View Application 一文。但本文将更加深入的叙述了启动过程,且实现均为 Swift 3.0。
本文对应的 Demo 可以在:https://github.com/kingcos/SingleViewAppManually-Demo 查看、下载。
Manually or Storyboard
main.m in Objective-C Single View Application
AppDelegate.swift
@UIApplicationMain
完成)。AppDelegate.swift
application(_:didFinishLaunchingWithOptions:)
:该方法在应用启动进程几乎完成且将要运行之际调用,因此在其中初始化 window,设置根控制器,并使得其可见。@UIApplicationMain
main.swift
UIApplicationMain()
int UIApplicationMain(int argc, char * _Nonnull argv[], NSString *principalClassName, NSString *delegateClassName);
方法。UIApplication
MyApp.swift
sendEvent(:)
方法便可以监听到整个应用发送事件。Update for CS193p
Reference