看了一周的OC语法,准备正式上手,写个最简单的iOS页面试试,结果一路遇到一堆大坑。。
用Xcode12创立一个空的iOS APP项目,目录是这样的:
其中MYUIView .h和.m文件是我创建的,其他文件是Xcode自动创建的。
各文件意义大致是这样:
入口在main.m,含义是直接调用委托,委托对象的名字是appDelegateClassName变量的值。
然后AppDelegate文件本来我以为就应该是真正的入口了,但他还不是真正的入口,可以看到:
AppDelegate是把工作又交给了SceneDelegate,关键这玩意以前版本的Xcode是没有的,我看的iOS书上也没讲有这回事,浪费半天时间。
另外Xcode工程默认的程序入口是storyboard,我们想直接用代码初始化工程入口,怎么办?
经过各种百度谷歌,解决方法如下:
1.删除storyboard,直接move to trash
2.删除infoplist里的Storyboard
3.删除工程配置--general--deployment info选项卡下的Main interface(删除Main,回车就行)
4.删除Info文件下的Application Scene Manifest
5.删除AppDelegat.m中自动生成的两个委托SceneDelegate的方法(上面图有)
6.关掉Xcode重启
好!信心满满开始运行!报错!
注意到SceneDelegate里有window的声明,window应该算是承接所有view的容器(iOS萌新的看法),所以既然我们不用SceneDelegate了,那么AppDelegate.h里要加上window的声明。
再运行,又报错了!
发现是需要一个根ViewController,那么我们再初始化一个:
终于Run成功了,我好想打人!