2010-08-13 64 views
4

當你有一個UIViewControllerUITableViewController類,你想讓這兩個在他們的- (void)viewDidLoad中做一些常見的東西,你怎麼能在Objective-C中實現這一點,而不需要真正複製你的代碼呢?如何不在Objective-C中複製代碼? (又名多繼承)

我試圖創建MyUIViewController繼承UIViewController並實現viewDidLoad在那裏。這很明顯與UIViewController類很好,但不會在UITableViewController工作,因爲我不能簡單地替換@interface MyTableViewController : UITableViewController@interface MyTableViewController : MyUIViewController。我相信這個話題是關於Objective-C語言中的「多重繼承」,但除了弄清Objective-C的不同外,我真的很想知道如何讓人們做這樣的事情?

回答

1

This thread有一些很好的信息。您的主要選擇之一是創建一個具有共享功能的類並將其作爲實例變量保存,然後在forwardInvocation中將消息轉發給它。

+0

是的,forwardInvocation是我在所有閱讀完畢後發現的。我希望也許有另一種方式來做到這一點。謝謝。 – Ali 2010-08-13 08:19:57