iOS比较数组和集合

时间:2012-05-15 21:51:24

标签: objective-c ios nsarray nsset

我正在尝试比较两个数组以查看它们是否匹配 - 我的测试用例是“获胜者”,我一直在尝试将它们与halArray和playerArray进行比较而没有运气。即使我知道例如playerArray和win1都有相同的对象,它们似乎不匹配并触发我的NSLOG()

这是winners数组的设置方式

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

如何填充comp和播放器

-(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];
    }
}

1 个答案:

答案 0 :(得分:3)

问题在于您使用NSString填充win数组,并将它们与您填充NSNumber的{​​{1}}进行比较。

他们永远不会匹配。

从中改变这个(和其他胜利):

halArray

到此:

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

NSArray  *win1 = [NSArray arrayWithObjects:[NSNumber numberWithInt:0], [NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil]; 代替NSString添加到NSNumbershalArray