Omk*_*kar 20 macos xcode swift
我使用Xcode 6和swift语言创建了一个示例项目.
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
}
}
Run Code Online (Sandbox Code Playgroud)
@NSApplicationMain是什么意思,我的main.mm/main.m文件在main()的哪个位置?
Mat*_*son 34
正如它在发行说明中所提到的:
OS X应用程序现在可以将@NSApplicationMain属性应用于其应用委托类,以便为应用生成隐式主要内容.此属性的工作方式与iOS应用程序的@UIApplicationMain属性相同."
因此,基本上,它是一种让您的应用程序自举和运行的方式,而无需在单独的Swift文件中编写一些全局级样板文件.在以前版本的Xcode中,当您创建一个新的Swift Cocoa项目时,Xcode会main.swift
为新的OS X项目生成一个文件,如下所示:
import Cocoa
NSApplicationMain(Process.argc, Process.unsafeArgv)
Run Code Online (Sandbox Code Playgroud)
这是主要的切入点.现在Xcode不打算生成这个文件; 相反,它只标记您的应用程序委托,@NSApplicationMain
并在幕后处理此引导步骤.
更多信息来自The Swift Programming Language:
将此属性应用于类以指示它是应用程序委托.使用此属性等效于调用
NSApplicationMain
函数并将此类的名称作为委托类的名称传递.如果不使用此属性,请提供具有调用该函数
main.swift
的main
函数的文件NSApplicationMain
.例如,如果您的应用使用自定义子类NSApplication
作为其主要类,请调用该NSApplicationMain
函数而不是使用此属性.
归档时间: |
|
查看次数: |
6366 次 |
最近记录: |