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

正視遇到的每個錯誤

在一個遙控器類操控小車玩具的小實例項目中,我採用組合的方式,將遙控器擁有小汽車對象(has a)關係,而不是繼承(is a)關係。spa

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

Controller.m :對象

1 - (instancetype)initWith 2 { 3     self = [super init]; 4     if (self) { 5         NSLog(@"遙控器初始化建立了"); 6         _car = [[Car alloc] init]; 7  } 8     return self; 9 }

注意:這裏的init方法,我不當心寫成了initWith方法。原本意圖是自定義初始化方法傳入參數......忘記改回init。blog

而後建立Controller對象的時候,使用[[Controller alloc] init]。結果調用的是父類(Controller extends NSObject)的init方法,因此斷點查錯查不到,到了某個方法就自動跳出結束了。繼承

正確只要把那個寫錯的 initWith 改回成 init 方法就能夠了。it

相關文章
相關標籤/搜索