我一直在为此奋斗了好几天;我的应用程序有一个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];
}
}
的问题是,即使答案是错误的文本框,只要是正确的,他们都将显示为正确的,这是一种尴尬! 任何帮助将非常感激。
什么是“theTextFieldTag” - 它看起来像你每次通过循环检查字典中的相同值。这将有助于如果您发布microscopeDictionary(或其一部分),以便我们可以看到结构。 – rdelmar 2012-04-24 00:04:24
再次感谢@rdelmar,你一直在救我! TheTextFieldTag是“正在编辑”文本字段标记的字符串表示形式。我从0到4(对于5个文本字段)使用它们,字典的初始密钥为0到4,然后在其中检查“答案”键。我认为问题在于,它以某种方式循环所有文本字段的所有可能正确答案,因为随机“错误”答案没有问题。 – 2012-04-24 09:45:57
为了澄清,如果我放入“狗”,它不会给出标记,但如果我把“目镜”正确地放在所有的盒子中,就会说它是正确的。或“阶段”或任何其他正确的答案。只要一个是正确的,它将标记其他人正确... – 2012-04-24 14:00:02