我對ios開發非常陌生,而我剛開始使用我的第一個應用程序。現在我的應用程序幾乎在每個頁面上都有一個主頁按鈕,並且在該按鈕後面調用相同的代碼片段以移至主屏幕。這是每個擁有主頁按鈕的控制器中的大量重複代碼。這僅僅是一個例子。還有很多其他的場景像這樣,程序員仍然在學習編碼,我認爲它的壞習慣,因爲任何變化都必須在每個控制器上分別進行。在iOS應用程序中重複使用代碼
所以我的問題是什麼在這樣的情況下編碼爲ios時的最佳做法?
我對ios開發非常陌生,而我剛開始使用我的第一個應用程序。現在我的應用程序幾乎在每個頁面上都有一個主頁按鈕,並且在該按鈕後面調用相同的代碼片段以移至主屏幕。這是每個擁有主頁按鈕的控制器中的大量重複代碼。這僅僅是一個例子。還有很多其他的場景像這樣,程序員仍然在學習編碼,我認爲它的壞習慣,因爲任何變化都必須在每個控制器上分別進行。在iOS應用程序中重複使用代碼
所以我的問題是什麼在這樣的情況下編碼爲ios時的最佳做法?
一個簡單的事情在這種情況下做的就是讓UIViewController
子類(MyAppMasterVC
,例如),並定義按鈕,像這樣:
- (IBAction)myCommonButtonAction { // code and such }
在所有視圖控制器,從這個一個繼承,而不是UIViewController
(a la @interface MyNewViewController : MyAppMasterVC
)。
要做的第一件事是瞭解更多關於OO編程和類層次,並瞭解如何爲所有類似的控制器創建一個通用基類。
這個問題是語言/平臺不可知的。許多使用的術語是'幹',一個'不要重複自己'的縮寫。
Here is a SO search。這應該可以幫助您解決典型問題和用途,因此您可以更好地確定是否可以,何時應該以及如何解決此類問題。
從這個意義上說,iOS的軟件開發與其他軟件開發沒有區別。簡單地將你的邏輯合併到一些通用的類或函數中,並按照它認爲合適的方式使用它。通常情況下,你不知道什麼部分可能是常用的,可重用的,直到你寫了多段代碼,然後才意識到它可能是一個函數。組織現有代碼,清理它,使其更具可讀性和可重用性的過程稱爲code refactoring。有很多關於重構的書籍解釋了不同的design patterns,使您的代碼更好的技術和流程。我建議你閱讀其中的一些來獲得更好的照片。
看起來像:http://stackoverflow.com/questions/6223485/iphone-how-to-display-a-common-button-on-my-all-view – Devang
@Devang:我會說一個問題如何使一個通用按鈕更加本地化,而不是這個。所以我不會把這個稱爲重複的,至少不是這個問題。 – 2011-10-19 12:45:48