如何从两个不同的NSMUTABLEARRAY迭代文本字段但索引是相同的

时间:2012-03-19 14:17:12

标签: iphone ios

如何在同一个循环中计算并从两个不同数组中选择值?

类似的东西

例如:

for(UITextField *field in textFieldArray && textFieldArray2)

我必须减去该值,我有2个数组,我想从不同的数组中减去两个文本字段的值,但是相同的索引......

我的代码是

int result = 0;
for(UITextField *field in textFieldArray) // will iterate all UITextField which was added
{
    result += [field.text intValue]; //or floatValue
}
NSLog(@"the result is %d", result); //here you have sum of all the text fields' text

我想减去这个,但两个文本字段都在不同的数组上,但具有相同的索引......

int y12 = ([Txt_New_Actual.text intValue]);
float c116 = y12-([Txt_New_Estimated.text floatValue]);
Txt_New_ONU.text = [[NSString alloc] initWithFormat:@"%.2f",c116];

3 个答案:

答案 0 :(得分:0)

使用enumerateWithBlock或者使用在循环中递增的变量索引。使用objectAtIndex访问另一个数组:。

答案 1 :(得分:0)

获取快速枚举循环中当前对象的索引,然后使用indexOfObject:获取索引,并在第二个数组上使用objectAtIndex:

这样的事情:

int result = 0;
for(UITextField *field in textFieldArray)
{
    int indexOfObject = [textFieldArray indexOfObject:field];
    UITextField *secondValue = (UITextField *)[textFieldArray objectAtIndex:indexOfObject];
    result += [secondValue.text intValue];
}
NSLog(@"the result is %d", result); 

如果第二个数组的返回值有效,你仍然应该对该代码进行某种检查。

答案 2 :(得分:0)

另一种解决方案是使用for子句而不是foreach进行循环,例如:

int result = 0;
int count = [textFieldArray count];
for(int i=0; i<count; i++)
{
    UITextField field = [textFieldArray objectAtIndex:i];
    int y12 = ([field.text intValue]);
    field = [theOtherArray objectAtIndex:i];
    float c116 = y12-([field.text floatValue]);
}