当前位置: 首页 > 面试题库 >

@NSApplicationMain在XCode中的Swift编程项目中有什么用

澹台华翰
2023-03-14
问题内容

我已经使用Xcode 6和快速语言创建了一个示例项目。

Xcode使用以下代码创建了AppDelegate.swift

import Cocoa

@NSApplicationMain

class AppDelegate: NSObject, NSApplicationDelegate {

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        // Insert code here to initialize your application
    }

    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }


}

@NSApplicationMain是什么意思,带有main()的main.mm/main.m文件在哪里?


问题答案:

如发行说明中所述:

OS
X应用程序现在可以将@NSApplicationMain属性应用于其应用程序委托类,以便为该应用程序生成隐式主程序。此属性的作用方式与iOS应用程序的@UIApplicationMain属性相同。”

因此,基本上,这是一种引导应用程序运行的方法,而无需在单独的Swift文件中编写一些全局级别的样板文件。在以前版本的Xcode中,当您创建新的Swift
Cocoa项目时,Xcode会main.swift为新的OS X项目生成一个文件,如下所示:

import Cocoa

NSApplicationMain(Process.argc, Process.unsafeArgv)

那是主要的切入点。现在,Xcode不再费心生成此文件。相反,它只是用您的应用程序委托标记,@NSApplicationMain并且该引导步骤在后台处理。

更多来自The Swift Programming
Language的信息

将此属性应用于类以指示它是应用程序委托。使用此属性等效于调用该NSApplicationMain函数并将此类的名称作为委托类的名称传递。

如果不使用此属性,请为main.swift文件提供一个main调用该NSApplicationMain函数的函数。例如,如果您的应用程序使用的自定义子类NSApplication作为其主体类,请调用该NSApplicationMain函数,而不要使用此属性。



 类似资料:
  • 问题内容: 我正在尝试导入一个项目。我在“构建阶段”->“使用库链接二进制文件”中添加了内容。 Objective-C的作品: 但是在Swift中,我得到一个错误: 根据Swift文档: 导入外部框架 您可以导入具有纯Objective- C代码库,纯Swift代码库或混合语言代码库的外部框架。无论框架是用单一语言编写还是包含两种语言的文件,导入外部框架的过程都是相同的。导入外部框架时,请确保将要

  • 问题内容: 我是Swift的新手,我想知道它的用途以及原因。 我已经在类和结构中看到了它,但是我真的没有发现它们在我的代码中提到它们是必不可少的。它们的用途是什么?为什么?在什么情况下有必要使用它? 我一直在阅读很多关于该问题的问题和答案,但是没有一个能够完全回答我的问题,而且他们总是倾向于将其与Java中的情况进行比较,对此我并不陌生。 问题答案: 创建扩展时,您还将经常使用self,例如: 现

  • 每当我在新的beta版本xcode 9上运行在xcode 8.3中创建的项目时,我都会遇到以下错误: 无法更改文件的所有者:///users/AaronZheng/library/developer/coresimulator/devices/96629718-46b0-4775-8a31-49857ee620b8/data/library/caches/com.apple.mobile.inst

  • 问题内容: 我在臭名昭著的SevenSwitch类中遇到了一行代码。 这是线… 我不明白方程式的结尾是什么或 什么。有人可以解释一下这些含义以及它们的用法吗? 问题答案: 运算符可以是一元,二进制或三元: 这是三元运算符在三个目标上的运算。与C一样,Swift也只有一个三元运算符,即三元条件运算符(a?b:c)。 来自Apple Documents 基本操作员 三元条件运算符 三元条件运算符是具有

  • 问题内容: 我需要一种在Apple平台上从Swift调用Python代码的方法。一个图书馆将是理想的。我已经做了大量的Google搜索,而我发现的最接近的材料是关于Objective- C的。 问题答案: 如果有人对从swift调用python感兴趣,这是我发现的一些有用的材料: python框架-https: //developer.apple.com/library/ios/technotes

  • 问题内容: 是否可以在Xcode 8中使用Swift 2.2? 从Xcode 8发行说明: “ Xcode 8支持切换工具链,例如来自swift.org的工具链,而无需重新启动Xcode。(23135507)” 我一直试图在swift.org网站上找到swift 2.2工具链,但是找不到。在将Xcode 8配置为可与Swift 2.2一起使用方面取得任何成功 问题答案: 在XCode8中不能使用S