我现在已经挣扎了好几天了;我的应用程序有一个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];
}
}
问题是,即使答案是在错误的文本字段中,只要一个是正确的,它们都会显示为正确,这有点令人尴尬! 非常感谢任何帮助。
答案 0 :(得分:1)
尝试将valueForKey:theTextFieldTag更改为valueForKey:textField.tag并查看是否有帮助。你没有展示如何获得theTextFieldTag的值,所以我不确定这是不是问题。