推出Swift应用程序序列

时间:2014-06-06 05:55:38

标签: ios swift

任何人都知道快速应用程序的启动顺序吗?正如我所看到的,swift应用程序中没有main函数。那么谁负责这样做

// Entry point of a normal iOS app
int main(int argc, char * argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

您的应用程序对象和AppDelegate将在此处创建。但对于快速的应用程序,我想知道谁在创建这些。

如果有人知道,请分享您的想法。

2 个答案:

答案 0 :(得分:11)

如果查看AppDelegate.Swift类,您会发现在文件的全局区域中写入的@UIApplicationMain语句。正如@Daniel在回答中也提到的那样。

现在我尝试评论该行并编译代码,看看我得到了什么..

enter image description here

用非常简单的语言,错误说编译器试图搜索implicit entry/start for main executable,但没有得到。

它显示@UIApplicationMain中的AppDelegate.Swift语句为Swift程序创建了一个隐含的入口点。

我试着明确编写main.swift类......它可以工作。

我的 main.swift 看起来像..

import Foundation
import UIKit

UIApplicationMain(C_ARGC, C_ARGV, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate))

答案 1 :(得分:7)

swift Book说:

  

在全局范围编写的代码用作程序的入口点,因此您不需要主函数。

如果您查看了AppDelegate,则标记@UIApplicationMain不在任何范围内,并被视为入口点。