一尘不染

“ @UIApplicationMain”是什么意思?

swift

我刚刚创建了我的第一个Swift项目,在AppDelegate.swift类声明上方有一行-为什么会在其中?

...
import UIKit
import CoreData

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

阅读 374

收藏
2020-07-07

共1个答案

一尘不染

@UIApplicationMainSwift中的属性替换了main.m在Objective-
C项目中找到的琐碎文件(其目的是实现main作为所有C程序入口点的功能,并调用UIApplicationMain以启动Cocoa
Touch运行循环和应用程序基础结构)。

在Objective-
C中,该UIApplicationMain功能提供的每个应用程序配置的主要(heh)位是将应用程序的自定义类之一指定为共享UIApplication对象的委托。在斯威夫特,你可以很容易地通过添加指定这个类@UIApplicationMain属性到类的声明。(UIApplicationMain如果有必要,您仍然可以直接调用该函数。在Swift中,您可以将该调用放在main.swift文件的顶级代码中。)

@UIApplicationMain仅适用于iOS。在OS
X中,传统上将应用程序委托设置在Info.plist指定的主nib文件中(对于Swift与ObjC相同)—但是在OS
X情节提要中没有主nib文件,因此@NSApplicationMain也存在相同的事情。

2020-07-07