列挙型の各値の項目を持つメニューがあります。
メニュー:
[ ] 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;
これを配線する最もクリーンな方法は何ですか? 私には 2 つのアイデアがありますが、どちらも不十分だと思います。
1 番目のアイデア: 各値 ( など) のプロパティを作成しますsortMethodIsDueDate
。setSortMethodIsDueDate:
これらのプロパティは呼び出しsetTaskSortMethod:
て呼び出しますvalueDidChange:@"sortMethodIsDueDate"
。その後、メニュー項目はこれらのプロパティにバインドされます。これは大変な作業のようです。
2 番目のアイデア: 各メニュー項目を に接続してから、メニュー項目-(IBAction)updateSortMethod:(id)sender
を繰り返し、 に応じて値を設定しますsender
。このアプローチはtaskSortMethod
、コードの別のセクションによって が変更されるまでは問題ありません。変更された時点で、メニューを と同期させるためにコードを追加する必要がありますtaskSortMethod
。
VとCの分離が優れているため、最初のアプローチに傾いています。
より良いアイデアはありますか?