Как перебрать текстовое поле из двух разных NSMUTABLEARRAY Но индекс один и тот же - PullRequest
0 голосов
/ 19 марта 2012

Как рассчитать и выбрать значение из двух различных массивов в одном цикле?

что-то в этом роде

Например:

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 голосов
/ 19 марта 2012

Получите индекс текущего объекта в цикле быстрого перечисления, затем используйте 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); 

Вы все равно должны поставить какую-то проверку в этот код, если верное значение из второго массива является действительным.

0 голосов
/ 19 марта 2012

Другое решение - циклическое использование предложения for вместо foreach, например ::100100

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]);
}
0 голосов
/ 19 марта 2012

Либо используйте enumerateWithBlock, либо индекс переменной, который вы увеличиваете в цикле.Получите доступ к другому массиву с objectAtIndex:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...