2013-02-07 38 views
2

在iOS中,很多時候我的項目都有類似的屏幕,這裏和那裏有一些不同之處。 隨着時間的推移,類似的屏幕可能會出現在我最初構建時我不會意識到的upp。如何避免類似視圖控制器中的重複代碼?

所以,在這種情況下,我所做的是幾乎沒有枚舉屬性,並放入if-else語句在代碼中進行區分。

看起來很醜!特別是當我們在TableView數據源和委託方法中實現某些東西時,每個地方都有相同的if-else或switch case。

現在,如果我製作一個單獨的VC,那麼我必須在這裏和那裏複製粘貼大量相同的代碼。 如果其中一個有錯誤,那麼它到處都是,而且很難追蹤。

考慮到截止日期,在父類中預先放置普通事物變得非常困難,因爲我不確定將來是否會出現類似的屏幕。

那麼通用的方法是什麼?

回答

8

好像你有3種選擇:

inheritance有一個具有方法MySpecialViewController的超你找到可用,並且能夠覆蓋在子類中,爲該類添加額外的功能非常有用。你提到你'沒有時間'提前做這件事,那很好,找出常用的方法,並在事實之後創建一個超類,並讓你的視圖控制器成爲它的子類。

categories如果您不需要重寫共享功能,並且遇到多重繼承問題,請創建包含要在視圖控制器中使用的幫助程序方法的類別。

utility class如果您正在重複使用的方法可以在其自己的類中運行,並且出於某種原因,上述兩個選項不起作用,只需創建一個具有常用方法的MyUtils類即可。