2012-04-23 67 views
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]; 

    } 
    } 

的問題是,即使答案是錯誤的文本框,只要是正確的,他們都將顯示爲正確的,這是一種尷尬! 任何幫助將非常感激。

+0

什麼是「theTextFieldTag」 - 它看起來像你每次通過循環檢查字典中的相同值。這將有助於如果您發佈microscopeDictionary(或其一部分),以便我們可以看到結構。 – rdelmar 2012-04-24 00:04:24

+0

再次感謝@rdelmar,你一直在救我! TheTextFieldTag是「正在編輯」文本字段標記的字符串表示形式。我從0到4(對於5個文本字段)使用它們,字典的初始密鑰爲0到4,然後在其中檢查「答案」鍵。我認爲問題在於,它以某種方式循環所有文本字段的所有可能正確答案,因爲隨機「錯誤」答案沒有問題。 – 2012-04-24 09:45:57

+0

爲了澄清,如果我放入「狗」,它不會給出標記,但如果我把「目鏡」正確地放在所有的盒子中,就會說它是正確的。或「階段」或任何其他正確的答案。只要一個是正確的,它將標記其他人正確... – 2012-04-24 14:00:02

回答

1

嘗試更改valueForKey:theTextFieldTag valueForKey:textField.tag,看看是否有幫助。你沒有說明你如何得到TextFieldTag的價值,所以我不確定這是否是問題所在。

+0

非常感謝你,我會在稍後嘗試。我使用NSString * theTextfieldTag = [[NSString alloc] initWithFormat:@「%i」,textfield.tag];我相信,但如果它有什麼不同,我會轉貼:)再次感謝 – 2012-04-24 15:36:28

+0

Textfield.tag提供了一個錯誤,因爲它是一個整數,我相信,這就是爲什麼我把它包裝在一個nsstring中(就是這個詞?)如上。我把一個nslog放到循環中,它給出5個0,5的1到4,這就是爲什麼我認爲它是通過整個字典而不是特定的字典 – 2012-04-24 16:22:46

+0

也許我應該使用nsenumerator?如此迷茫! – 2012-04-24 17:07:32