我刚刚创建了我的第一个Swift项目,在AppDelegate.swift类声明上方有一行-为什么会在其中?
AppDelegate.swift
... import UIKit import CoreData @UIApplicationMain // <- WHY IS IT HERE? class AppDelegate: UIResponder, UIApplicationDelegate { ...
@UIApplicationMainSwift中的属性替换了main.m在Objective- C项目中找到的琐碎文件(其目的是实现main作为所有C程序入口点的功能,并调用UIApplicationMain以启动Cocoa Touch运行循环和应用程序基础结构)。
@UIApplicationMain
main.m
main
UIApplicationMain
在Objective- C中,该UIApplicationMain功能提供的每个应用程序配置的主要(heh)位是将应用程序的自定义类之一指定为共享UIApplication对象的委托。在斯威夫特,你可以很容易地通过添加指定这个类的@UIApplicationMain属性到类的声明。(UIApplicationMain如果有必要,您仍然可以直接调用该函数。在Swift中,您可以将该调用放在main.swift文件的顶级代码中。)
UIApplication
main.swift
@UIApplicationMain仅适用于iOS。在OS X中,传统上将应用程序委托设置在Info.plist指定的主nib文件中(对于Swift与ObjC相同)—但是在OS X情节提要中没有主nib文件,因此@NSApplicationMain也存在相同的事情。
@NSApplicationMain