我想學iOS的Objective-C。我試圖研究這一點,但我不能使用正確的關鍵字。使用一種方法代替很多
我有幾個標籤被簡單地命名,Label1的,Label2的,等我也有一噸的代碼基本上看起來相同,除了標籤#的變化。我可以構建一種方法並將數字傳遞給它並顯着縮小我的應用程序嗎?
我想學iOS的Objective-C。我試圖研究這一點,但我不能使用正確的關鍵字。使用一種方法代替很多
我有幾個標籤被簡單地命名,Label1的,Label2的,等我也有一噸的代碼基本上看起來相同,除了標籤#的變化。我可以構建一種方法並將數字傳遞給它並顯着縮小我的應用程序嗎?
你可能想要在NSArray或其他類型的集合中擁有這些對象。然後,您將能夠遍歷內容並對每個元素執行相同的操作。
考慮定義一個新類CisonLabel,它抽象出這些標籤的共享行爲。 CisonLabel擁有控制權及其相關數據。所以,你會說
CisonLabel *label1=[CisonLabel for: self.labelControl1 withIdentifier: 1];
CisonLabel *label2=[CisonLabel for: self.labelControl2 withIdentifier: 2];
的CisonLabel將有類似的方法:
- (void) update; // sets the label text, based on the identifier
由於DRiis建議,你可以收集在collectionm也許是一個NSArray所有CisonLabels。
- (void) updateLabels: (NSArray*) theLabels
{
for(CisonLabel *label in theLabels) [label update];
}
你本能的聲音:抽象出共同的行爲爲一類,並避免重複自己。
非常感謝,但我對你的回答Mark有些困惑。第一種方法更新一個標籤,而第二個方法更新所有標籤?在第一個方面,標識符是否可以理解?就像你調用它時發送該方法的參數一樣?第二,因爲標籤都在新類中,它是否會自動對它們執行方法「更新」?請澄清。 – tcison 2013-03-23 14:14:37
謝謝。當你說'或另一種類型的集合'時,除了數組之外,其他類型是什麼? – tcison 2013-03-23 14:07:46