0

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

这就是获胜者数组的设置方式

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

1 回答 1

3

问题是您正在使用 's 填充 win 数组NSString并将它们与NSNumber您填充的 ​​'s进行比较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 而不是NSNumbersto halArrayand playerArray

于 2012-05-16T01:20:34.190 回答