【问题标题】:iOS Compare Arrays and SetsiOS 比较数组和集合
【发布时间】:2012-05-15 21:51:23
【问题描述】:

我正在尝试比较两个数组以查看它们是否匹配-我的测试用例是“赢家”,我一直在尝试将它们与 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];
    }
}

【问题讨论】:

  • 您确定您不想测试 playerSet 是否是 testSet 的子集(对于 halSet 也是如此)而不是相反的情况?请附上这两组的日志,我相信我们会看到发生了什么。祝你好运!
  • 你能发布你是如何填充“playerArray”或“halArray”的吗?也许每个示例内容?
  • 好的更新 - 我将 NSNumbers 添加到数组中。我想要做的是将每个用户选择的空间添加到数组中,然后将数组与可能的“获胜”进行比较,以了解他们是否获胜。因此,例如,如果玩家选择了空间 0、1 和 2(他们可以有更多,但我只需要匹配“Win”)它将匹配“win1”并且游戏将结束。

标签: objective-c ios nsarray nsset


【解决方案1】:

问题是您正在用NSString 填充win 数组,并将它们与填充halArrayNSNumber 进行比较。

它们永远不会匹配。

从这里改变这个(和另一个胜利):

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

到这里:

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

NSStringNSNumbers 添加到halArrayplayerArray

【讨论】:

    猜你喜欢
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多