Для Loop, чтобы сделать повторную проверку переменных для меня - PullRequest
1 голос
/ 27 февраля 2011
NSArray *test = [NSArray arrayWithObjects:@"22", @"3", @"22", @"5", @"1", @"0", @"2", nil];

NSArray *test2 = [NSArray arrayWithObjects:@"21", @"2", @"20", @"5", @"1", @"9", @"2", nil];

for(int i = 0; i < 7; i++) {

   if ([test objectAtIndex:i] == [test2 objectAtIndex:i]); {

testVariable = testVariable + 1; 
    }

}    

NSLog(@"%i", testVariable);    

Я пробовал приведенный выше код для проверки сравнения переменных, но он возвращает 7, когда должен возвращать 3. Нужно ли каким-то образом извлекать и хранить каждый объект массива в локальной переменной и сравнивать их друг с другом? Или я могу сделать что-то более прямое, как то, что я попробовал выше. Массивы очень интересные. :)

UPDATE:

Получил работать с NSInteger .. :) Думаю, я сравнивал объекты, а не фактические целые числа раньше ..

Ответы [ 2 ]

2 голосов
/ 27 февраля 2011

Вы можете использовать препроцессор

#define variable(name,number) {name##number}

и позже в цикле

for (int a = 1; a <= 53; a++) {    
    if ((variable(taken,a) == 2) && (variable(hidden,a) == 2)) {
        //Do something
    } 
}
1 голос
/ 27 февраля 2011

Простой ответ - не использовать разные переменные. Вместо этого используйте коллекцию или массив. Тогда вы могли бы иметь:

if (taken[a] == 2 && hidden[a] == 2) {
    ...
}

Подумайте об использовании массива всякий раз, когда вы ставите числовые суффиксы для переменных того же типа и префикса.

...