所以我對這個網站很陌生,並不確定約定如何去問一個問題,但我只是從Objective-C開始,並且有一個與對象實例化相關的問題。目的C分配方法的邏輯?
好的,所以我知道根類NSObject有類方法alloc和init,並且這些方法傳遞給任何繼承NSObject的類,這幾乎是每個類。我知道實例化對象的典型格式是這樣的:
MyObject *m = [[MyObject alloc]init];
但考慮MyObject來有自NSObject的繼承了alloc和初始化方法,這個理論上也可正常工作,考慮到爲MyObject和NSObject的具有相同的頁頭和init方法(假設類不重寫它們):
MyObject *m = [[NSObject alloc] init];
而且它適用於只是實例,但是當我嘗試打電話給在爲MyObject類中的任何方法,一個NSException被拋出。當我將NSObject alloc切換回MyObject alloc時,它可以工作。我只是不明白爲什麼!這可能是一個基本問題,但有任何解釋?
在此先感謝!
傑克
什麼是拋出的異常? – 2012-07-21 17:57:05
@NSArray我相信這是一個NSInvalidArgumentException - 無法識別的選擇器發送到實例(實例的十六進制地址) – 2012-07-21 18:04:46