열거 형의 각 값에 대한 항목이있는 메뉴가 있습니다.열거 형 속성을 바인딩하는 가장 깨끗한 방법은 무엇입니까?
메뉴 :
[ ] 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;
이를 연결할 수있는 깨끗한 방법은 무엇입니까? 나는 두 가지 아이디어를 가지고 있지만 불만족 스럽습니다.
첫번째 생각 : 이러한 속성은 setTaskSortMethod:
를 호출 한 후 이러한 속성에 바인딩 할 valueDidChange:@"sortMethodIsDueDate"
등 메뉴 항목을 부를 것이다 각각의 값 (sortMethodIsDueDate
, setSortMethodIsDueDate:
등)에 대한 속성을 만듭니다. 이것은 많은 일처럼 보입니다.
두 번째 아이디어 : 각 메뉴 항목을 -(IBAction)updateSortMethod:(id)sender
에 연결하면 메뉴 항목을 반복하고 sender
에 따라 값을 설정할 수 있습니다. 이 접근법은 taskSortMethod
과 동기화 된 상태로 유지하기 위해 포인트 코드를 추가해야하는 다른 코드 섹션에 의해 taskSortMethod
이 변경 될 때까지 문제가 없습니다. 는 V & C.
더 좋은 아이디어와 더 나은 분리를 가지고로
나는 첫 번째 방법으로 기울고 있어요?
나는 두 번째 접근법을 따라갔습니다. 다음 번에이 문제가 생기면 그것을 해결할 수업을 만들 생각입니다. 나는 더 우아한 해결책이 없다는 것에 놀랐습니다. –