2

列挙型の各値の項目を持つメニューがあります。

メニュー:

[ ] 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 番目のアイデア: 各値 ( など) のプロパティを作成しますsortMethodIsDueDatesetSortMethodIsDueDate:これらのプロパティは呼び出しsetTaskSortMethod:て呼び出しますvalueDidChange:@"sortMethodIsDueDate"。その後、メニュー項目はこれらのプロパティにバインドされます。これは大変な作業のようです。

2 番目のアイデア: 各メニュー項目を に接続してから、メニュー項目-(IBAction)updateSortMethod:(id)senderを繰り返し、 に応じて値を設定しますsender。このアプローチはtaskSortMethod、コードの別のセクションによって が変更されるまでは問題ありません。変更された時点で、メニューを と同期させるためにコードを追加する必要がありますtaskSortMethod

VとCの分離が優れているため、最初のアプローチに傾いています。

より良いアイデアはありますか?

4

1 に答える 1