Xcode 6新项目缺失main.swift文件

4

由于无法获得通常的ctrl-click帮助,我重新安装了Xcode 6。 现在,每当我为OS X Cocoa应用程序创建新的Xcode项目时,主要.swift文件不再像以前那样出现在支持文件中。我有两个分区,一个安装着Mavericks,另一个安装着Yosemite。 请问有人能告诉我发生了什么事情,并如何解决呢? 这是我的第一个问题,请随意指出任何错误。 谢谢

1个回答

16
您不一定需要一个 main.swift 文件。那个文件的主要目的是调用 NSApplicationMain(),这个函数会启动 Cocoa 应用程序。但是,由于每个应用程序都需要这样做,苹果公司添加了一个 less-boilerplate 的方法来完成这些操作。
现在,您只需要使用 @NSApplicationMain 属性标记您的应用程序委托类。然后,Xcode 将内置正确的钩子,使用您选择的类作为 NSApp 的委托来启动您的应用程序进入其主运行循环。新的项目模板会这样做,这就是为什么您不再需要 main.swift 了。(这也使您不需要在主 NIB 中指定应用程序委托,这对使用 OS X storyboards 的应用程序很有用。)
当然,如果您想更加自定义您的应用程序设置 - 比如在运行循环开始之前运行一些代码或使用自定义 NSApplication 子类,您仍然可以创建一个 main.swift 文件并自己调用 NSApplicationMain()。 (如果您这样做,请确保还从您的应用程序委托类中删除 @NSApplicationMain 属性。)

非常感谢。你讲得很清楚。我觉得我准备好继续学习了,少了一个烦恼...很抱歉没有给你点赞,但我在这里还太新了,连15点声望都没有!等我到了那时,我会回来的。最好的问候,Artur Pinheiro。 - Artur Pinheiro
只有一个非常小的更正。当我读到这句话时,“现在,您只需要使用@NSApplicationMain属性标记您的AppDelegate类。” 我一开始感到困惑。当然,“map delegate”应该是“AppDelegate”。 @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate { - Carl Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接