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