我刚刚创建了我的第一个 Swift 项目,在 AppDelegate.swift
中类声明上方有一行 - 为什么它在那里?!
...
import UIKit
import CoreData
@UIApplicationMain // <- WHY IS IT HERE?
class AppDelegate: UIResponder, UIApplicationDelegate {
...
最佳答案
Swift 中的 @UIApplicationMain
属性替换了 Objective-C 项目中的普通 main.m
文件(其目的是实现 main
函数,它是所有 C 程序的入口点,并调用 UIApplicationMain
启动 Cocoa Touch 运行循环和应用程序基础结构)。
在 Objective-C 中,UIApplicationMain
函数提供的每个应用程序配置的主要(嘿)位是将您的应用程序的自定义类之一指定为共享 UIApplication< 的委托(delegate)
对象。在 Swift 中,您可以通过添加 the @UIApplicationMain
attribute 轻松指定此类。那个类(class)的声明。 (如果有理由,您仍然可以直接调用 UIApplicationMain
函数。在 Swift 中,您将该调用放在 main.swift
文件中的顶级代码中。)
@UIApplicationMain
仅适用于 iOS。在 OS X 中,app delegate 通常设置在由 Info.plist 指定的主 nib 文件中(对于 Swift 和 ObjC 都是一样的)——但是对于 OS X Storyboard,没有主 nib 文件,所以 @NSApplicationMain
在那里做同样的事情。
关于swift - "@UIApplicationMain"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516250/