2012-05-15 6 views
0

Я пытаюсь сравнить два массива, чтобы убедиться, что они совпадают. Мои тестовые примеры - это «Победители», и я пытался сравнить их с halArray и playerArray без везения. Даже если я знаю, что, например, playerArray и win1 оба имеют одни и те же объекты в них, они, похоже, не совпадают и вызвать мой NSLog()iOS Сравнение массивов и наборов

Это как массив победителей настроен

NSArray *win = [NSArray arrayWithObjects:@"0",@"1",@"2",nil]; 
winners = [NSArray arrayWithObjects: win1,win2,win3,win4,win5,win6,win7,win8,nil]; 

Как комп и игрок заселены

-(void)checkSpace:(NSString *)playerName spot:(int)selectedSpot 
{ 
    NSString *p = playerName; 
    int s = selectedSpot; 
    NSNumber* gameSpace = [NSNumber numberWithInt:s]; 

    if (p == comp) 
    {  
     [halArray addObject:gameSpace];   
     [self checkWin]; 
    } 
} 
+0

Вы уверены, что не хотите тестировать, является ли playerSet подмножеством testSet (и то же самое для halSet) вместо обратного случая? Пожалуйста, прикрепите журнал обоих наборов, и я уверен, что мы увидим, что происходит. Удачи! –

+0

Можете ли вы опубликовать, как вы заполняете «playerArray» или «halArray»? и, может быть, примерное содержание каждого? – Stretch

+0

ОК обновлено - я добавляю NSNumbers к массиву. То, что я пытаюсь сделать, это добавить пространство, которое каждый пользователь выбирает для массива, а затем сравнивает массив с возможными «выигрышами», чтобы узнать, выиграли они или нет. Например, если игрок выбрал места 0, 1 и 2 (у них могло быть больше, но мне нужно было только совпадение с «Победой»), это соответствовало бы «win1», и игра закончилась. – KDM

ответ

3

проблема заключается в том, что вы заселение выигрыш массива с NSString-х и сравнивая их с NSNumber о том, что вы населяют halArray с.

Они никогда не будут совпадать.

Изменение этого (и другая победа в) от этого:

NSArray  *win1 = [NSArray arrayWithObjects:@"0",@"1",@"2",nil]; 

к этому:

NSArray  *win1 = [NSArray arrayWithObjects:[NSNumber numberWithInt:0], 
              [NSNumber numberWithInt:1], 
              [NSNumber numberWithInt:2], 
              nil]; 

ИЛИ

Добавить NSString «S вместо NSNumbers к halArray и playerArray.

+0

Что сказал lnafziger. –

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