2011-11-12 2 views
0

Я пытаюсь обрешетке в if подобное заявление:Сравните каждый объект массива с любым другим объектом

if ([[records objectAtIndex:ANYPAGE] valueForKey: @"marbles"] intValue] == 
    [[[records objectAtIndex:ANYPAGE] valueForKey:@"marblesneeded"] intValue]) 
{ 
    // Some Code Goes Here. . . 
} 

Я хочу, чтобы иметь возможность проверить, если «шарики» и «шарики нужно» одни и те же во всех элементах массива за один раз. Как я могу это сделать?

+1

Что такое запись? Массив записей NSDictionary? Что означает «все записи массива за один раз» - более подробно, пожалуйста. – zaph

ответ

1

Любой код, который вы можете написать будет цикл через массив прямо или косвенно, как это:

BOOL allEqual = True; 
    for(int i=0; i< [records count] ; i++){ 
     if ([[records objectAtIndex: i] valueForKey: @"marbles"] intValue] != [[[records objectAtIndex: i]   valueForKey:@"marblesneeded"] intValue]) { 
      allEqual = False; 
      break; 
     } 
    } 
//do what ever using allEqual 
3

Попробуйте что-то вроде этого -

NSArray * marblesArray = [records valueForKey: @"marbles"]; 
NSArray * marblesNeededArray = [records valueForKey: @"marblesneeded"]; 

if([marblesArray isEqualToArray:marblesNeededArray]){ 
// do something 
} 
+1

Это может сработать, но может и не работать. Поскольку объекты в массиве должны реагировать на метод *** isEqual: ***. Кроме того, если объекты имеют другие поля, чем *** мраморные *** и *** marblesneeded ***, то это поле должно быть одинаковым, иначе этот код может не работать, даже если оба интересующих поля всегда равны , Следовательно, это может работать, только если структуры данных в массиве записей подчиняются определенным ограничениям. – simonpie

+0

@simonpie ... Я не согласен с вами в этом вопросе. Кроме того, если объекты имеют другие поля, кроме мрамора и мрамора, то это поле должно быть одинаковым. – Devarshi

+0

@simonpie ... то, что я делаю здесь, создает два разных массива из массива записей и сравнивает их. Поэтому вам нужно беспокоиться о ситуации, которую вы указали. – Devarshi

Смежные вопросы