前言:
随便写了一下,留着偶尔晃一眼,感觉还差东西,如果有的可以在评论区,评论一下,我在添加。
目录:
- 新建项目工程
- 了解程序的入口
- 调整项目结构
一、新建项目工程
1.创建一个Swift工程
1.1 选择 Create a new Xcode project
1.2 选择 Single View App
1.3 给工程命名,配置项目信息
1.5 放置到存储的文件夹中
二、了解程序的入口
2.1 swift为什么不需要main
在
c/c++
及其它语言中都有一个main
函数,程序从main
作为起点,开始执行程序,如下:int main(int argc, const char * argv[]) { printf("Hello, World!\n"); return 0; }
main
函数实际上是一个特殊的函数,为了能找到程序入口,大多楼语言都约定main()
函数作为入口。那么为什么在Swift
中没有这样的一个函数呢?先看一下官方的解释Code written at global scope is used as the entry point for the program, so you don’t need a main function. 大体意思是,在main.swift中的代码是在全局作用域下,这些代码直接作为整个项目的入口,所以这里并不需要main函数。
2.2 main.m文件在哪里?
在
OC
中,很容易找到main.m
文件,因为我们创建项目的时候,Xcode
自动就创建好了main.m
文件因为我们创建swift项目的时候,Xcode不帮我们创建main文件了,在swift中取消了main文件
- 其实在oc中的main.m文件里,也就是只有一个main函数。这个函数返回了一个UIApplicationMain函数,说明程序的入口就是在UIApplicationMain函数里,因此如果在swift项目中需要用到main函数的时候,我们可以模仿oc的写法,手动创建一个main.swift文件,然后写一个UIApplicationMain函数就好了,这样就相当于跟oc的main.m文件一样效果了
当然,在swift中既然取消了main文件,那么肯定也会去执行UIApplicationMain函数的。仔细一找就会发现,swift项目的AppDelegate文件中,在class前面还是有一个@UIApplicationMain的,这就是程序的入口了
当我们需要修改程序入口的方式时,创建一个main.swift文件,添加一个UIApplicationMain函数,并且再将AppDelegate中的 @UIApplicationMain 注释掉
UIApplicationMain(CommandLine.argc, UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer<Int8>.self,capacity: Int(CommandLine.argc)), nil, NSStringFromClass(AppDelegate.self))
备注:学习文章:
1、 Swift找不到main文件,程序的入口去哪了
2、怎么设置程序的入口
三、配置工程基本信息
3.1类前缀/Infor.plist等
熟悉OC 的就不用说了,配置一下就成,一样一样的
3.2 调整项目结构
没调整之前
调整之后