OC小例項關於init 方法不小心的錯誤

2021-09-08 19:24:45 字數 493 閱讀 5806

oc小例項關於init 方法不小心的錯誤

在乙個遙控器類操控小車玩具的小例項專案中,我採用組合的方式,將遙控器擁有小汽車物件(has a)關係,而不是繼承(is a)關係。

想法:將建立小汽車的例項化過程寫在遙控器的初始化方法中

controller.m :

1 - (instancetype)initwith

2 8 return self;

9 }

注意:這裡的init方法,我不小心寫成了initwith方法。本來意圖是自定義初始化方法傳入引數......忘記改回init。

然後建立controller物件的時候,使用[[controller alloc] init]。結果呼叫的是父類(controller extends nsobject)的init方法,所以斷點查錯查不到,到了某個方法就自動跳出結束了。

正確只要把那個寫錯的 initwith 改回成 init 方法就可以了。

OC小例項關於init方法不小心的錯誤

在乙個遙控器類操控小車玩具的小例項專案中,我採用組合的方式,將遙控器擁有小汽車物件 has a 關係,而不是繼承 is a 關係。想法 將建立小汽車的例項化過程寫在遙控器的初始化方法中 controller.m 1 instancetype initwith28 return self 9 注意 這...

OC中單例禁用init方法

一種是在init方法裡丟擲異常 instancetype init然後構建乙個私有的init方法,在裡面呼叫 super init 然後單例實現中就呼叫私有的init方法 還有一種是直接在init中返回單例 instancetype init同樣的,也是需要構建乙個私有的init方法,再在單例中呼叫...

OC 學習 類方法 例項方法

方法是類的行為,寫在介面和實現兩個檔案中。在介面部分宣告方法,在實現部分實現方法。1 類方法與例項方法 objective c中的類可以宣告兩種型別的方法 例項方法和類方法。例項方法就是乙個方法,它在類的乙個具體例項的範圍內執行。也就是說,在你呼叫乙個例項方法前,你必須首先建立類的乙個例項。而類方法...