Marcus’ Blog

馬克斯的碎念與筆記

Category: Swift

優雅的使用Swift 與Storyboard

最近剛到新公司,這裡的專案大量的使用Storyboard,在前公司時,因為多人協作的關係,並沒有使用Storyboard 在進行開發,因此,結合了一些已閱讀過的觀念,順便來實作看看。

原本的問題

原本使用Storyboard 要拿到一個viewController 的instance 時,需要像這樣:

func foo() {
    let storyboard = UIStoryboard(name: "MainStoryboard", bundle: nil)
    let initViewController = storyboard.instantiateInitialViewController()
    let viewController = storyboard.instantiateViewController(withIdentifier: "AnIdentifierForViewController") as! ViewController
    // Do something...
}

這邊有幾個缺點:

  • Storyboard 與ViewController 的Identifier 都是字串,重複使用時容易typo,對開發來說造成許多變因,以經驗上來說挺危險的
  • 使用了as! 來做downcast,但不使用強制轉型又顯得哆嗦

Continue reading

使用Swift 實作後序式運算

在昨天,讀書會的學員在開會的時候詢問了我關於後序演算法的實作問題,當下覺得陌生,沒想到是大二的時候資料結構學的postfix notation,回想起來真是有趣,也沒印象當年C語言怎麼實做的(甚至只記得是做過Stack、Queue、Linklist),倒是沒印象實做過真正的運用。

當下請學員們試著實作一個App(順便練習資料結構兼具App XD),自己卻心癢癢想用Swift 實作看看,所以就找了一些資料順便重新了解一下postifix notation。

Continue reading

© 2021 Marcus’ Blog

Theme by Anders NorenUp ↑