cocos2d-x lua 框架中 self.super.ctor(self, app) 和 self.super:ctor(app) 的區別

今天發現了一個問題,框架中我一開始都是使用的self.super.ctor(self, app)來使用父類的構造函數,但是今天看到,lua中元表中函數的調用,  . 和 : 使用是有很大區別的, : 會默認傳遞一個self進去,而 . 需要自己手動傳遞self,作爲第一個參數

所以我將self.super.ctor(self, app)改爲了self.super:ctor(app),運行之後報錯了

研究了一下,發現是因爲這裏的self不對,需要的是父類的self,而默認傳遞的是沒有和父類合併的子類的實例self,所以報錯了,解決辦法就是要麼全改爲 :ctor(self, ...) 自己手動合併self, 或者按着框架的來

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章