我正在使用xCode 6在Swift中编写一个简单的游戏。我在项目中有各种各样的文件。 xCode如何知道执行代码时从哪里开始?在我看来,它自动从文件开始,在各种教程之后,我称之为“GameViewController.swift”。但是它如何决定首先使用这个文件呢?它是否扫描UIViewController对象的源文件并从那里开始?
答案 0 :(得分:1)
对于iOS,Swift会查找具有@UIApplicationMain
属性的类,并将其用作应用程序的委托。
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
...
}
使用该属性等同于调用UIApplicationMain
函数并将类的名称作为委托类的名称传递。这反过来将处理加载默认的Storyboard并加载其初始视图控制器。
如果找不到@UIApplicationMain
,Swift将查找名为main.swift
的文件以及名为main
的函数并调用它。
答案 1 :(得分:0)
为了让您了解Apple架构,这里是一个适用于iOS Objective-C的Cocoa应用程序示例:
每个应用程序都从 main 开始,但开发人员入口点通常是 AppDelegate 。这也适用于 Swift ,即使 main 已从应用程序生命周期中消失。请记住, main 只是为了启动应用程序或进行一些小调整。
如果您使用故事板,则可以从那里设置应用的起始屏幕,相反,如果所有内容都在代码 AppDelegate 将在此时负责:
func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
答案 2 :(得分:0)
如果您使用的是故事板,则目标上会有一个名为“主界面”的设置。这提供了一个下拉列表,您可以在其中选择故事板文件。即Main.storyboard。此设置将写入将在开始时加载的Info.plist文件。
在此文件中,视图控制器被设置为初始视图控制器,并将首先加载。