2010-05-24 3 views
0

예를 들어, 나는 수백 개의 수표를 가진 거대한 스위치 제어 구조를 가지고 있습니다. 애니메이션 시퀀스는 0부터 n까지 번호가 매겨져 있습니다.변수 검사 값으로 큰 스위치 제어 구조를 만드는 방법은 무엇입니까?

누군가 내가 스위치로 변수를 사용할 수 없다고 말했습니다. 내가 필요로하는 것은 다음과 같습니다 :

이 점은 애니메이션 시스템이이 큰 스위치 구조를 가진 메소드를 호출하여 단계 번호를 부여한다는 것입니다. 큰 블록을 잘라내어 복사하여 붙여 넣기를하고 스위치 내부의 다른 위치에 넣을 수 있기를 원합니다. 예를 들어, 처음부터 끝까지 50 블록.

거대한 if-else 구조로 쉽게 할 수 있지만보기가 좋지 않아 뭔가 전환하는 것이 훨씬 빠릅니다.

?

답변

1

이렇게하면 안됩니다. 사례 레이블은 상수 여야합니다.

당신은 예를 들어, 작업을 수행 할 각 건에 대한 선택을 정의

여기에 더 좋을 수도가이 작업을 수행하는 하나의 방법입니다

SEL anArray[] = { @selector(doOneThing), @selector(doAnotherThing) /* other selectors */, NULL }; 

을 그리고 당신은 그들을 통해 반복 할 수

-(void) doOneThing; 
-(void) doAnotherThing; 
// etc 

은 배열에 넣어.

SEL* selPtr = anArray; 
while (selPtr != NULL) 
{ 
    [self performSelector: *selPtr]; 
    selPtr++; 
}