swift - "@UIApplicationMain"是什么意思?

标签 swift

我刚刚创建了我的第一个 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/

相关文章:

swift - 是否可以将不同的属性分配给 UITextView 中字符串中的不同字符?Swift 3

swift - 估计某些文本的 UICollectionView 单元格的大小

swift - 如何从 Alarmofire 和弹出窗口中获取表格格式的 JSON 值?

ios - 自定义tableviewCell内容宽度与tableView不同

swift - 是否可以将通用协议(protocol)传递到构造函数中以在 Swift 3 中进行适当的依赖注入(inject)?

ios - 如何存储字典数组并将其显示在 swift 4 的 Collection View 中

ios - Swift 2 SkScene 更改

javascript - 在 WKWebView(iOS,Swift)中使用本地 Javascript 源加载本地 HTML

swift - 防止基于 NSDocument 的应用程序在崩溃后重新打开文档

ios - 捕获 iOS 应用程序中的调试信息