2012-04-23 3 views
0

저는 지금 며칠 동안이 문제로 어려움을 겪었습니다. 내 응용 프로그램에는 그림의 레이블을 나타내는 uitextfield가있는 다이어그램이 있습니다. 사전 (답변)에 대한 사용자 입력을 확인하고 올바른 경우 점수를 1 씩 증가시키고 싶습니다. textfield.text 쿼리를 각각 '하드 코딩'하여 나는 가능한 한 더 좋고 재사용 가능한 방법을 원할 것인가? 지금까지이 시도했습니다텍스트 필드를 통해 사용자 입력 확인

문제는 답이 잘못된 텍스트 필드에있는 경우에도이 한 일이 올바른지, 그들은 모든 종류의 당황하는 등 바로 표시하는 것입니다
- (IBAction)checkAnswers:(UITextField *)textField 
{ 
// array for each textfield 
allTextfields = [[NSArray alloc] initWithObjects:eyepiece, objectiveLenses, focussingKnobs, stage, mirror, nil]; 
// array for each UIImageView 
allTicks = [[NSArray alloc] initWithObjects:eyepieceTick, objectiveTick, focussingTick, stageTick, mirrorTick, nil]; 
UIImage *image = [UIImage imageNamed:@"Tick.png"]; 

for (textField in allTextfields) { 

    if ([textField.text isEqualToString:[[microscopeBrain.microscopeDictionary valueForKey:theTextfieldTag] valueForKey:@"Answer"]]) { 
     [[allTicks objectAtIndex:textField.tag] setImage:image]; 
     x++; 
     textField.enabled = NO; 
     NSLog(@"%@", microscopeBrain.microscopeDictionary); 
    // NSLog(@"%@", [[microscopeBrain.microscopeDictionary valueForKey:theTextfieldTag] valueForKey:@"Answer"]); 
    } 

    finalMicroscopeScore = [[NSString alloc] initWithFormat:@"%i", x]; 
    microscopeScoreLabel.text = [[NSString alloc] initWithFormat:@"%i", x]; 

    } 
    } 

! 도움이 될 것입니다.

+0

"theTextFieldTag"란 무엇입니까? 루프를 통해 매번 같은 값을 사전에 확인하는 것처럼 보입니다. 그것은 우리가 구조를 볼 수 있도록 현미경 사전 (또는 그것의 조각)을 게시한다면 도움이 될 것입니다. – rdelmar

+0

다시 한번 감사드립니다. @rdelmar, 계속 나를 구제 해주세요! TheTextFieldTag는 '현재 편집 중'인 텍스트 필드의 태그를 나타내는 문자열입니다. 0에서 4까지 (5 개의 텍스트 필드 용) 사전이 0에서 4까지의 초기 키로 설정되고 그 다음에 "응답"키가 설정되어 검사됩니다. 문제는 랜덤 '잘못된'답변에 문제가 없기 때문에 모든 텍스트 필드에 대해 가능한 모든 정답을 순환한다는 점입니다. –

+0

"개"를 넣으면 명확하게하기 위해 표시가되지 않지만 모든 접안부에 "접안 렌즈"를 넣으면 올바른 것이라고 말할 것입니다. 또는 "단계"또는 정답 중 하나를 선택하십시오. 한 사람이 옳다면, 다른 사람을 올바르게 표시 할 것입니다 ... –

답변

1

valueForKey : theTextFieldTag를 valueForKey : textField.tag로 변경하여 도움이되는지 확인해보십시오. theTextFieldTag의 값을 얻는 방법을 보여주지 않으므로 그게 문제인지 잘 모르겠습니다.

+0

고맙습니다. 나중에 시도해 보겠습니다. 나는 NSString * theTextfieldTag를 사용한다. [[NSString alloc] initWithFormat : @ "% i", textfield.tag]; 나는 믿는다. 그러나 그것이 다른 무엇이라도 있으면 나는 다시 게시 할 것이다 :) Thanks again –

+0

Textfield.tag는 내가 왜 그것을 감쌌다 고 생각하는 정수이기 때문에 오류를 준다. (그 단어인가?) 위와 같이 nsstring에서. 나는 루프에 nslog를 두었고, 0의 인스턴스를 5 개, 1의 5를 4까지 줄었습니다. 그래서 특정 사전과 반대되는 전체 사전을 거쳐야한다고 생각합니다. –

+0

아마도 nsenumerator를 사용해야할까요? 그래서 혼란스러워! –

관련 문제