私はこれにかなりの数日間苦労してきました。私のアプリには、画像のラベル付けを表す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つが正しければ、すべてが正しく表示されることです。これはちょっと恥ずかしいことです。どんな助けでも大歓迎です。