首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Xcode 12中"@main“是什么意思?

在Xcode 12中"@main“是什么意思?
EN

Stack Overflow用户
提问于 2020-11-14 06:48:47
回答 2查看 714关注 0票数 0

Xcode 12支持在UIKit或基于AppKit的应用程序中使用@main代替@UIApplicationMain或@NSApplicationMain。来源

新创建的Xcode 12项目现在使用@main来指示应用程序的起点。

  1. 什么意思?
  2. 是干什么的呢?
  3. 应用程序现在是怎样启动的?

阅读一些博客文章,其中说@main取代了@UIApplicationMain,为了使其正常工作,需要定义一个静态main方法。然而,在main中没有AppDelegate方法,并且应用程序的启动没有任何问题。

用Xcode 12创建的macOS项目

代码语言:javascript
运行
复制
import Cocoa

@main
class AppDelegate: NSObject, NSApplicationDelegate {
    func applicationDidFinishLaunching(_ aNotification: Notification) {}

    func applicationWillTerminate(_ aNotification: Notification) {}
}

用Xcode 12创建的iOS项目

代码语言:javascript
运行
复制
import UIKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { return true }

    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }

    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-14 14:49:17

UIApplicationMain首先实例化UIApplication并保留其实例作为共享应用程序实例(UIApplication.shared),然后实例化标记为@Main的应用程序委托为应用程序实例的委托。main方法以类型法的形式存在。

票数 1
EN

Stack Overflow用户

发布于 2020-11-14 09:22:50

@main是一个属性,表示这是应用程序的入口点,不可能有多个结构。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64831598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档