我正在編寫一些Objective-C代碼,而且我經常遇到必須使用類變量來存儲一次性值的情況。消耗後,我不再需要它。對我而言,將此值存儲在類變量中看起來像代碼味道。真的值應該作爲參數傳遞給我使用的方法。如何從Objective-C代碼中刪除一次性使用的類變量?
我在使用代理時會遇到這種情況。作爲一個例子,我有一個用戶界面,其中包含多個用於加載和顯示UIActionSheet
的按鈕。該操作表包含日期選擇器,該操作表在操作表被解除時設置UILabel
的值。
- (IBAction)setPurchaseDateTapped {
self.activeField = purchaseDate;
[self loadDatePickerActionSheet:@"Edit Purchase Date"];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
self.activeField.text = value_from_UIActionSheet;
}
正如你可以在這裏看到,該actionSheet clickedButtonAtIndex回調不允許我打發activeField
所以我必須用一個類變量。這似乎更正確的寫:
- (void)actionSheet:(UIActionSheet *)actionSheet parameterValue:(id)parameter {
parameter.text = value_from_UIActionSheet;
}
我相信,我可以子類UIActionSheet和UIActionSheet委託並補充一點,我需要簽名,但同樣這似乎是更多的努力比它的價值(?)。
所以我的問題是什麼是做我想做的最好的方法是什麼?
我不一定要更改我創建的日期選取器/操作表界面(雖然如果有更好的模式在UIView上設置多個日期並保持DatePicker不變, 。所有m耳)
我還沒有意識到tags屬性。我得看看這個。 – 2010-01-25 17:38:27