2014-07-23 32 views
0

我在做可可編程:對於Mac OS X第4版,我在第11章「基本核心數據」,我無法弄清楚如何調用-(id)newObject-newObject如何在Core Data中調用?

我們鏈接add:carArrayController但是就是這樣。 如果我將-(void)add:(id)sender加到carArrayController那麼-(id)newObject不會被調用。 這告訴我有某種層次調用系統,但我無法找到有關該主題的信息。它是如何被調用的?

-(id)newObject來自NSObjectController。

+0

我不清楚你問什麼不在[文檔](https://developer.apple.com/librarY/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSObjectController_Class/Reference/Reference .html#// apple_ref/doc/uid/20002044-BBCEAICF)。 – stevesliva

回答

0

CarArrayController是NSArrayController的子類。在CarArrayController子類中,當您覆蓋-add:sender時,您必須確保在方法中有[super add:sender];,因爲它位於調用-newObject-add:sender的NSArrayController方法中。當您重寫子類中的方法時,通常需要調用方法的實現。

+0

按鈕添加如何鏈接添加:知道它必須調用-newObject?我沒有任何明確的鏈接或稱呼它。然後,如果我添加 - (void)add:(id)發件人如何做的按鈕添加鏈接添加:知道它必須調用 - (void)add:(id)發件人而不是 - (id)newObject。 – Kuebeker

+0

您覆蓋'-add:sender'並決定不調用'-newObject'。如果你通過調用'[super add:sender];'覆蓋它,它會被調用。當你不重寫'add:sender'時,它已經通過'super'調用。當NSArrayController('super')調用'-add:sender'方法時,NSArrayController中的方法就是調用'-newObject'的地方。 NSArrayController是NSObjectController的一個子類,所以它很可能在其實現的早期調用'[super newObject];'。 – mikeD

+0

我想改變我的評論,因爲我想出了它,但你回答了。我試圖找到與此相關的文檔,但什麼都沒發現。文件是否存在或是否是錯誤審判的案例?它是否明確地寫在文檔中,添加:將會調用newObject如果存在或它的外觀列表? – Kuebeker

相關問題