我有一個菜單,其中包含枚舉中每個值的項目。綁定枚舉屬性的最簡潔方法是什麼?
菜單:
[ ] Sort by Due Date
[ ] Sort by Priority
[√] Sort by Title
枚舉:
typedef enum CW_TASK_SORT_METHOD {
CWTaskSortMethodDueDate,
CWTaskSortMethodPriority,
CWTaskSortMethodTitle
} CWTaskSortMethod;
屬性:
@property(readwrite, assign) CWTaskSortMethod taskSortMethod;
什麼是這樣使用的清潔方法是什麼?我有兩個想法,但都讓我感到不滿意。
1想法:創建每個值(sortMethodIsDueDate
,setSortMethodIsDueDate:
等)性能這些屬性會打電話setTaskSortMethod:
和呼叫valueDidChange:@"sortMethodIsDueDate"
等菜單項,然後將綁定到這些屬性。這看起來很多工作。
第二個想法:將每個菜單項連接到-(IBAction)updateSortMethod:(id)sender
,然後迭代菜單項並根據sender
設置值。這種方法是好的,直到taskSortMethod
由代碼的不同部分改變,此時需要添加代碼以保持菜單與taskSortMethod
同步。
我傾向於第一種方法,因爲它具有在V & C.
更好的想法之間更好的分離?
我已經走了第二種方法。我想下一次出現這個問題時,我會創建一個類來解決它。我很驚訝沒有更優雅的解決方案。 – 2009-11-05 15:58:12