0

私はこれにかなりの数日間苦労してきました。私のアプリには、画像のラベル付けを表すuitextfieldsを含む図があります。ユーザー入力を辞書と照合して(回答を求めて)、正しければスコアを1増やします。textfield.textクエリのそれぞれに独自のifステートメントを「ハードコーディング」して動作させました。 、しかし、可能であれば、より良い、より再利用可能な方法が欲しいですか?私はこれまでこれを試しました:

- (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];

    }
    }

問題は、答えが間違ったテキストフィールドにある場合でも、1つが正しければ、すべてが正しく表示されることです。これはちょっと恥ずかしいことです。どんな助けでも大歓迎です。

4

1 に答える 1

1

valueForKey:theTextFieldTagをvalueForKey:textField.tagに変更してみて、それが役立つかどうかを確認してください。TextFieldTagの値を取得する方法が示されていないため、それが問題であるかどうかはわかりません。

于 2012-04-24T15:29:14.077 に答える