任何人都知道快速应用程序的启动顺序吗?正如我所看到的,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将在此处创建。但对于快速的应用程序,我想知道谁在创建这些。
如果有人知道,请分享您的想法。
答案 0 :(得分:11)
如果查看AppDelegate.Swift
类,您会发现在文件的全局区域中写入的@UIApplicationMain
语句。正如@Daniel在回答中也提到的那样。
现在我尝试评论该行并编译代码,看看我得到了什么..
用非常简单的语言,错误说编译器试图搜索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)
在全局范围编写的代码用作程序的入口点,因此您不需要主函数。
如果您查看了AppDelegate
,则标记@UIApplicationMain
不在任何范围内,并被视为入口点。