我一直在爲此奮鬥了好幾天;我的應用程序有一個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