Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift应用程序的启动顺序_Ios_Swift - Fatal编程技术网

Ios Swift应用程序的启动顺序

Ios Swift应用程序的启动顺序,ios,swift,Ios,Swift,有人知道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])); } }

有人知道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将在此处创建。但对于swift应用程序,我想知道是谁创建了这些

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

swift手册上说:

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


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

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

现在我试着注释这行代码,看看我得到了什么

在非常简单的语言中,错误是编译器试图搜索主可执行文件的
隐式条目/开始,但没有得到

它在
AppDelegate中显示
@UIApplicationMain
语句。Swift
为Swift程序创建一个隐式入口点

我试着显式地编写main.swift类…它可以工作

我的主菜斯威夫特看起来像

import Foundation
import UIKit

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

嗯。。我看到了。但不确定
@UIApplicationMain
。没有医生!不需要自动释放池?@CopperCash UIApplicationMain永远不会返回,池中的水永远无法排出。