2013-04-08 67 views
0

好吧,所以我有一系列的UITextFields有21到35之间的标签。我使用UITextField委托获取文本字段的值,当它完成编辑,然后将其添加到可变阵列。为委托方法的代码如下:UITextField编辑和添加到数组

- (void)textFieldDidEndEditing:(UITextField *)textField{ 

if(textField.tag >=21 && textField.tag <36){ 
    if(textField.text.length != 0) 
    [ingredients addObject:textField.text]; 
    } 
} 

因此,当在文本字段已完成编辑它增加了它的值写入可变数组。这一切都很好。但是,如果该文本字段再次编辑,如果用户更改该文本字段中的值,然后将另一个值添加到数组中,我想要编辑前一个值,而不是在数组中创建一个新值。

任何帮助,将不胜感激请!

+0

为什么当用户完成所有textFileds时,您不会将所有textField值添加到数组一次?还是你必须这样做? – brianLikeApple 2013-04-08 11:51:47

+0

根据UITextField的标签,您应该使用NSDictionary根据字典中的键存储文本值,除非解决方案因使用数组而依赖于任何原因。看到@JDx的想法 – Tim 2013-04-08 12:15:42

回答

2

你可以改变你食材的NSMutableArray反对的NSMutableDictionary设置字符串。例如:

- (void)textFieldDidEndEditing:(UITextField *)textField{ 

    if(textField.tag >=21 && textField.tag <36){ 
     if(textField.text.length != 0) 
      [ingredients setObject:textField.text forKey:[NSNumber numberWithInt:textField.tag]]; 
    } 
} 
+0

工作完全谢谢!Incase任何人有任何类似的问题,一旦它填充字典,项目访问就像这样:'for(id key in ingredient)id = [ingredients ingredientForKey:key]; [value doStuff]; }' – 2013-04-08 13:28:37

0

当您初始化时,将15个空字符串添加到您的配料数组中。然后,当textFieldDidEndEditing:被调用时,在适当的索引(textField.tag - 21)而不是使用addObject: