看了一周的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成功了,我好想打人!