我對我的UIViewControllers
(我們稱之爲MyViewController
)有一種抽象類,它覆蓋了一些基本方法,如viewDidLoad
或viewDidDisappear
。在這種方法中做了一些準備工作,比如爲導航欄設置顏色,或者準備酒吧按鈕或類似的東西。在Objective-C中模擬多重繼承
現在我想要我的UITableViewControllers
這個基本行爲。所以我做了一個新類,它繼承了UITableViewController
(我們稱之爲MyTableViewController
)並複製了MyViewController
的99%的代碼。
在這張圖片你看我現在的架構。列出的是重載方法,其中調用其他私有方法。再次,MyViewController
和MyTableViewController
共享99%的代碼庫(唯一不同的是類和超類的名稱)。
由於顯而易見的原因,這是廢話。
有沒有一個優雅的解決方案,使MyTableViewController
MyViewController
和UITableViewController
的子類?
對於少數類可能會有效。但是我必須爲每個子類複製/粘貼50行。只要我有5個以上的子類,這個解決方案將會有更多的代碼複製。 – Marc
50行不是那麼多。無論如何,你會意識到,與其他任何替代方案(我認爲其中一些),你仍然需要複製一些代碼。 – Merlevede
50行* n個子類=巨大數字imo。但是,到目前爲止你已經完成了。 – Marc