Must call a designated initializer of the superclass

  • 即係講到尾, subclass 想 call super.init 唔可以 call 佢個d convenience 只能 call 基本 init
  • 基本 init 又可以有好多個 , 你要 superclass 佢, 就要 required 晒佢~

    class NoteMessage: Message { let content: String
    
        init(content: String, theUser: String)
        {
            self.content = content
            super.init(sender: theUser)
            //Error!:  Must call a designated initializer of the superclass 'Message'
        }
    }
    

enter image description here

如何理解 swift 既 ? 同 !

如何理解 swift 既 ? 同 !

假設有 Class 叫 Animal

Animal? 並不要好似網上d tutorial 話 一係有一係 nil 咁理解

不如你當佢係未知的禮物 type 咁理解 (inspired by wrapped / unwrapped)

Animal? 有兩個狀態 1: S<Type> 或者 2: nil

唔係 nil 就可以打開佢, 打開左先係以前我地認識既 var

呢個世界有 3 個方法去打開禮物包

  1. ! 強行打開

  2. if let abc = xyz { } 禮物打開咪做下面d logic

  3. abc?.function() 有咪行個 function 囉

as? as! 都類似

as! 有機會 nil -> runtime error

as? 就要用 if let 幫幫手

if let animalSelectedNode = selectedNode as? AnimalSpriteNode {

ref: http://stackoverflow.com/questions/24018327/what-does-an-exclamation-mark-mean-in-the-swift-language