[iOS開發學習]SceneDelegate 何處來的?

最近開始重新上PeterPan的課程,希望能重新喚起2018上課時的記憶,昨天(3/21)上課有提到 #91自訂 controller 類別和利用 viewDidLoad 客製 App 畫面,剛好跟這兩天看一老外的iOS開發youtube教學影片有點關聯性,所以就特別記錄一下,教學影片Part 1提到如何不使用storyboard的設定開發方式,邊看邊跟著在Xcode上一起跟著操作,在SceneDelegate.swift 跟著輸入對應的程式碼結果出現了以下的錯誤訊息:

看來是因為的iOS 版本低於13以下不支援的緣故,趕緊把iOS版本調整位iOS 13 以上就恢復正常,也可正常於模擬器上執行

後來在網路上找了一下SceneDelegate相關的資訊,有找到幾篇相關探討的文章,有興趣的同學可以參考最後的參考文章連結。

SceneDelegate看來是iOS 13 & XCode 11後才加入的檔案結構,原本AppDelegate負責的一些初始化工作,改由SceneDelegate負責,原本window(視窗)的概念改由scene(場景)所取代,並且支援多場景功能,多場景應用可稍微參考以下兩張圖示說明。

https://betterprogramming.pub/where-does-this-scenedelegate-come-from-fb93ed5cb49d
https://betterprogramming.pub/where-does-this-scenedelegate-come-from-fb93ed5cb49d
Sean Allen 這影片介紹也有提到多場境應用https://www.youtube.com/watch?v=OfOcKVkQw5E

App 啟動的生命週期,加入SceneDelegate 後的比較圖示:

https://betterprogramming.pub/where-does-this-scenedelegate-come-from-fb93ed5cb49d

--

--